PluginManager: assert that plugin is loaded in Manager::instance().

Currently the user was responsible for checking that the returned
pointer is valid, which was too inconvenient. With proper usage the
pointer will be always valid so let's turn that into an assertion.
PluginManager: print error messages on all plugin load/unload failures.

Makes usage so much easier, as the user doesn't need to duplicate these
messages anymore.