PluginManager: don't use `pluginInitializer_*()` for static plugins.

This function name will be used for slightly different purpose.
PluginManager: don't keep any state between test cases.

Depending on fuckups in previous test case is way to hell.
PluginManager: renamed PluginTest to Test.

It tests everything, not just Plugin class.
PluginManager: store StaticPluginObject via pointer.

The object will be used elsewhere later.
PluginManager: don't recreate Resource instance every time.
PluginManager: no need to have [Static]PluginObject, just [Static]Plugin.

As we now have AbstractPlugin, the internal names don't conflict with
anything anymore.
PluginManager: accessing additional info about static plugins via union.

A little bit ugly code, but it looks cleaner than having info about both
static and dynamic plugin in Plugin itself with each plugin using only
half of the data.
PluginManager: rename variable to be consistent.
PluginManager: support for plugin initialization and finalization.

You can now "override" AbstractPlugin::initialize() and
AbstractPlugin::finalize() and implement initialization/finalization
routines there.
PluginManager: increase plugin API version to 3.

A lot of incompatible changes lately.