Added Context::shadingLanguageVersionStrings(), better extension query.

Not relying on GL version when asking for extensions, i.e. Mesa might
know glGetStringi() even if it reports OpenGL 2.1 only. Similarly in
shadingLanguageVersionStrings(), not all HW is capable of 4.3, but
GL_NUM_SHADING_LANGUAGE_VERSIONS might be supported on GL3 HW too (not
my case, though).
Moved framebuffer-related enums out of AbstractFramebuffer.

Removes another trivial choice issue.
Verify that GL boolean values have expected value.
Properly move in shader move constructor/assignment.
Removed unneeded includes.
Reworked and cleaned up shader classes.

Removed unneeded member variables, removed wrong assertions and wrong
documentation (most of the state they were fobidding is actually valid).
Retrieving shader log with full length, properly printing non-error
messages to debug output.

Each shader must now be compiled explicitly using compile(), which is
slightly better for the user as it is possible to check compile status
instead of having it weirdly hidden inside attachShader(). link() now
also returns linking status.
Moved AbstractShaderProgram::Attribute definition out of the class.
Public function for getting OpenGL program ID.
Added AbstractShaderProgram::validate().
Added Renderbuffer::setStorageMultisample().
Refactored Buffer internals to follow GL naming conventions.

Similar reasoning as in 4a9b0b36ec1e39175a6e4088f3be0dcf007cb74a.
Adapted to Corrade changes.
Bring whole Corrade namespace into Magnum namespace.

These projects are tightly interconnected anyway, this means a lot less
typing (yay!).
Math: another C++14 todo :-)
Context: use fully qualified name in macro.

So the macros are usable also when there is no `using namespace Magnum`.