Initial Font implementation.

It's based on freetype-gl, but I'm slowly extracting things. The
current prototype is scarily inefficient.
font: corrections, fixes.

Casting to int made font rendering look out of place at points.
Remove the need to manually store uniform/attrib locations.

Instead, when using them, if they are not found, initiate a search
for their location and store it.
cleanup: new vertex standard object
minor: spriteIndices -> indices
glDeleteBuffers is smart enough to ignore if the index is 0
add own VertexBuffer implementation.
Spritesheet cleanup.
merge indices into VertexBuffer.
use own VertexBuffer in font and get rid of freetype-gl buffer.
auto-update vertex buffer if dirty
bugfix: when there were more indices than vertices the indices were incorrect.

use the vertex count to calculate the global indices.
Font outlines.

Re-enable per-vertex color in font rendering, so we can outline
it properly. Initialize cursor value. Enable color attrib in
VertexBuffer.
Oh snap. Text shaders were missing.
add Font ruby bindings.

Note that for ruby, where we convert char* to wchar_t*, we need
to set the locale (which doesn't work on windows, of course...)
find a more elegant solution.
char_to_utf8 function for cross-platform char* -> wchar_t*
kerning is actually a float, not an int
Remove unused vector types from freetype-gl (we use GLM)

Eventually when we rewrite the freetype-gl code into a local
implementation, we'll get rid of it entirely.
move round(double) in platform.c to platform.h
Add a view matrix.

This will now be moved into a Camera class. The calculation of the
MVP matrix happens on the CPU, because we only need to calculate
it once per render, in the GPU it would be calculated per each
individual vertex, which would eventually take a toll on the
rendering.