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.
Try to autodetect and auto-enable compiler compatibility mode.

I'm sick of the neverending issue reports. Now the user doesn't need to
enable it in most cases (except when e.g. using Clang with
libstdc++-4.7, which can't be detected at all).
Merge branch 'master' into compatibility

Conflicts:
	CMakeLists.txt
	src/Corrade/PluginManager/Test/Test.cpp
Don't display irrelevant compatibility messages.

When GCC46_COMPATIBILITY was passed explicitly, it printed out message
about autodetecting GCC 4.7, which is wrong.
Merge branch 'master' into compatibility
Update compiler compatibility autodetection for compatibility branch.
package: remove explicit compatibility flags from Jenkins CI configs.
Merge branch 'master' into compatibility

Conflicts:
	package/ci/jenkins.xml
GCC 4.5 compatibility: no range-based for.