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.
PluginManager: fix compilation on Windows.
PluginManager: fix also building of tests on Windows.

Ghhh...
doc: clearly mention that CMake module file should be kept up-to-date.
package: updated debian package to latest specification.

Huge thanks to Costas Hatzis for the help.
package: allow the debian package to be built in parallel.

Why this isn't the default is beyond me.
doc: updated debian packaging documentation.
doc: added Visual Studio building instructions.
PluginManager: blind attempt to fix plugins using static build.
PluginManager: better, yet still blind attempt to fix static build.

Reverts useless change done in commit
7428cdeb6fc163cbfc36b12a98769768d6bb7881.