Fix broken unit test due to missing Config.init() call
Move plugin instantiation and instance storing logic PluginEntry->PluginManager

Instantiation and storing of the instance should be owned privately by
PluginManager, not exposed via an unprotected public API. That said,
this refactoring does not make any breaking changes to the public API,
except for removing the createPlugin call in PluginEntry, which should
not be called by anyone other than PluginManager anyway.
@Deprecate methods of PluginManager that were never meant to be public