MeshTools: don't allocate and memcpy zeros in interleave().

We have std::memset for that. What the hell I was thinking back then.

Found when trying to get rid of as many naked allocations and deletions
as possible. Also improved the test with some ASCII-art documentation.
MeshTools: use std:: prefix everywhere.
TgaImageConverter: use static data and ImageReference instead of `new`.
Use "constructor cast" instead of `static_cast<GL...>(...)`.

Makes the lines shorter, the conversions are mainly from strongly-typed
enums to underlying type, so nothing potentially harmful which should be
marked with static_cast.
Use Containers::Array instead of naked allocation in *Framebuffer.

GL_NONE is fortunately zero, so we can skip std::fill_n altogether and
replace it with zero-initialized allocation. Added just-in-case
static_assert to check that.
Shapes: added forgotten test for Composition::transformed().

Crashes, as I could imagine. Why I am constantly forgetting to write
tests for essential functionality?!
Shapes: test also copying and movement of Composition.

Now we know where it crashes.
Shapes: use Containers::Array instead of naked array in Composition.

Makes the copying code simpler. Also added assertion that we copy into
available memory and not somewhere out of bounds. The test now fails the
assertion.
Shapes: fix copy constructor in Composition.

The test now passes again.
Explicitly pass also shader source sizes in Shader::compile().

Should avoid potentially costly `strlen` in glShaderSource() internals.
Audio: use Containers::Array instead of naked allocation in Source.
Fixed Buffer documentation to reflect set*Data() changes.
MeshTools: return Containers::Array instead of pointer from compressIndices().

This is source-incompatible change, but this function probably wasn't
used much in user code, rather its Mesh/Buffer convenience overload.

Actually Containers::Array<char> has _implicit_ conversion operator to
char*, but this should not be an issue, as the conversion is not allowed
on rvalue references, thus the following code shouldn't compile at all.
Not available on GCC < 4.8.1, though.

        // ...
        char* data;
        std::tie(..., data) = MeshTools::compressIndices(...);
MeshTools: return Containers::Array also from interleave().
Math: fixed *::data() documentation.
Math: don't allow *::data() to be called on rvalues.

There are more cases that should be fixed, but this is the most
problematic one, as this might look completely innocent:

    Vector2 a, b;
    float* c = (a + b).data();

Unlike this, which looks suspicious:

    Vector2& c = a + b;