Documentation update for shader classes.
Fully test shader functionality.
Updated documentation of mesh classes.
Updated documentation of framebuffer classes.
Default template parameter for Buffer::data(), templated Image::data().

To have BufferImage::buffer().data() consistent with Image::data()
(default is unsigned char data type, but it is possible to reinterpret
the data). Saves some ugly code:

    Image2D image(ColorFormat::RGB, ColorType::UnsignedByte, ...);
    Color3ub a = reinterpret_cast<Color3ub*>(image.data())[0]; // before
    Color3ub b = image.data<Color3ub>()[0];                    // after
Added convenience Color3ub and Color4ub typedefs.
Platform: undefine more Xlib nonsense.

Status conflicts with *Framebuffer::Status enum.
Verify that framebuffer extension is available for test on desktop GL.
Test framebuffer functionality.

The attach() functions are a total mess, need to be reworked along with
typesafe array etc. textures. The test doesn't link or pass due to some
issues, see the following commits.
Export publicly used symbol.

Framebuffer test now at least links.
Fix AbstractImage::pixelSize() for depth and stencil types.

Also make the assertion more descriptive and add "to sleep better" test.
This fixes the assertion failure in FramebufferGLTest.
Added *Image::dataSize().

Will be used to compute size of data array needed to store image of
given size.
Use *Image::dataSize() in Framebuffer::read().

Fixes Framebuffer test when ARB_robustness is used (without
ARB_robustness it was overwriting memory and could lead to weird
behavior).