OpenGL includes are ~35k lines together and it is a waste of
compilation time to include them even if they are not needed at all
(e.g. whole SceneGraph and Physics libraries). Saves ~10s of compilation
time (6:46 before, now 6:35).
It prevents unwanted implicit conversions from e.g. nullptr to Camera,
Vector2 to Physics::Point etc. By making all the constructors explicit
it is easier to routinely add the keyword to all new classes instead of
thinking about cases when to add and when not to.
Now whole Magnum, Magnum::SceneGraph and Magnum::Math namespaces are
fully documented -- each class has at least "getting started"
documentation, larger modules are documented on separate pages.
Some extensions are not part of any core OpenGL version (such as
EXT_direct_state_access, EXT_texture_filter_anisotropic etc.), thus they
have None for core version. Current mechanism in
Context::isExtensionSupported() is that it checks for core version first
and if that is supported, it doesn't check for the extension itself.
Until now Context::isVersionSupported(None) returned always true, which
meant that all non-core extensions were marked as supported
_everywhere_.