Actually make use of Color[34]ub typedefs.
MeshTools: refactored implementation of interleave().

Everything are now pure functions, no shared state, no useless functor
class wrapping. Still needed to wrap attribute count and stride
computation functions in struct to make proper overload resolution
working without the need to deinline the functions (they have cyclic
dependencies).
MeshTools: use zero-initialized array in interleave().

Surely is faster than calling std::memset for every zero byte.
MeshTools: added interleaveInto().

Basically a version of interleave() which takes existing buffer instead
of creating new zero-initialized one. The last bit needed for real
runtime usage.
Why the heck did I leave inline here?
Renamed AbstractShaderProgram::Attribute::Type to ScalarType.

In all other places (e.g. Math, SceneGraph), SomeClass<T>::Type is
always T. I spent twenty minutes figuring out what went wrong, so better
have this consistent.

Also update the test to check for these, as they apparently were tested
only indirectly through the MeshGLTest.
Define AbstractShaderProgram::Attribute<T>::Type as T.

The original comment is now saying the truth.
MeshTools: added compile() function.

All-in-one solution for preparing generic meshes with optional normals
and texture coordinates, configured for use with Shaders::Generic.
Shaders: doc++