Don't query shader info log if it contains only '\0' character.
Shaders: fix port of *Vector shaders to old GLSL.

Texture layer binding was never set and there were various GLSL
compilation errors.
Added KHR_debug to ES2 extension list.
Added Renderer::error().
Added debug output for Renderer error and reset status queries.
Use proper ARB_framebuffer_object extension.

Separated EXT_framebuffer_object, EXT_framebuffer_blit,
EXT_framebuffer_multisample and EXT_packed_depth_stencil don't have the
same functionality as ARB_framebuffer_object (e.g. missing
GL_FRAMEBUFFER_UNDEFINED in glCheckFramebufferStatus()) and separated
read/draw binding is only in EXT_framebuffer_blit, which complicates the
internals.

Checked with Mesa 8/9 and OpenGL 2.1, current one has
ARB_framebuffer_object and also all these four, Mesa 7.7 didn't have
EXT_framebuffer_multisample, but that's a long time ago, so not
supporting these separate extensions shouldn't be an issue.

The problem with unavailable separate binding points remains on OpenGL
ES 2.0, there are three different extensions bringing that
functionality, thus the code managing the available binding points
remains there.
Fixed typo copypasted all over the place.
Fixed extension numbers.
Added functions for checking (default) framebuffer state.
TextureTools: ported distanceField() to OpenGL 2.1 and OpenGL ES.

 * Older GLSL doesn't have texelFetch() and related things, working
   around it by using classical texture() and normalized floating-point
   coordinates. But that needs to have Texture::imageSize() passed,
   which is not available in OpenGL ES, thus the user must specify it
   explicitly there. On desktop OpenGL that parameter is ignored.
 * Older GLSL doesn't have gl_VertexID, thus vertex buffer must be
   created and vertex data passed expliticly.
 * GLSL ES 2.0 doesn't have one-component texture format and
   TextureFormat::Luminance probably isn't renderable anywhere, thus
   TextureFormat::RGB should be used, although it is inefficient.
 * Checking  for framebuffer completeness, if not complete, nothing is
   done.
 * Re-eabled building of TextureTools library in all ES PKGBUILDs.
Reverted interval in distancefield-related things.

1.0 is taken as shape center (white), 0.0 as shape surroundings (black).
It was unintuitive to have it reverted, updated documentation to make it
right.
Text: ported GlyphCache to older OpenGL and OpenGL ES.

 * Not requiring ARB_texture_storage, as Texture::setStorage() has
   already implemented fallback.
 * Not requiring EXT_texture_rg for single-channel texture on ES2, as
   this extension might not be available everywhere (unlike in ES3
   desktop OpenGL, where Mesa 8/9 with OpenGL 2.1 supports it), fallback
   to Luminance in GlyphCache and RGB in DistanceFieldGlyphCache,
   because Luminance might not be renderable everywhere.
 * Re-enabled building of Text library in all ES PKGBUILDs.
Added some TODOs.
ES2 emulation on desktop is done through GLX, not EGL.