Thanks to HighCore I've looked into Managed Extensibility Framework (MEF) and it seems to answer a big part of my needs.. The others are pretty simple to implement..
I found some great and simple information here: http://randomactsofcoding.blogspot.co.il/2009/11/working-with-managed-extensibility.html?m=1