Reordered Renderer::Feature enum.
Added multisampling to Renderer::Feature enum.
Platform: multisampling support in Sdl2Application.
Platform: multisampling support in GlutApplication.
Define MAGNUM_TARGET_GLES3 if targetting ES and not ES2.

Makes it easier to disable parts of the code than with this. And this
would also not be future-proof:

    defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_GLES2)
Added FindOpenGLES3.cmake module.

Seems that Mesa has both ES2 and ES3 in the same libGLESv2.so. Weird.
16bit SNORM internal texture formats are not available in ES3.

Don't know why I thought they were.
Some image & texture formats are available only through ES2 extensions.

And ES3 has no extensions now.
Texture border & anisotropy is available only as ES2 extension.
No deprecated Buffer::map() in ES3.
glDrawBuffer() is not available in ES3.

Using glDrawBuffers() also in this case.
Platform: forgot to initialize variable.
Updated PKGBUILDs and added ES2/ES3 variants.
Trade: improved *Data constructors and destructors.

 * They are now deinlined into source files, as most of the classes have
   either heavy members (std::vector) or virtual methods.
 * All of them are explicit now (that should be already done, don't know
   why not).
 * Passing huge classes by value and using move constructors to avoid
   unnecessary copying.
Cleaned up OpenGL.h header.

I didn't know that C preprocessor had `#elif` until now. Learning
something new every day.
Text: made constructors explicit.
Text: assert that also freeing up FreeType resources doesn't fail.
Text: properly compute glyph count in FreeTypeFont layouter.

It was the same as byte count, thus working only for pure ASCII, not
UTF-8.
Delete VAO in Mesh only if it is nonzero.

glDeleteVertexArrays() was called even after the Mesh was moved out to
another object. On my NVidia it was working but it might cause issues
elsewhere.
Fixed outdated documentation.