Replace monolithic PluginManager by template based one embedded in each plugin class.
This greatly reduce the duplicated code and remove the need of a central class that have to know about every kind of plugins.

This is a required step to be able to build a low level libplatform which will have to use the plugin manager, but will not need all the kind of supported plugins.