Poseable is not a struct because it has a vtable. This means that
it cannot be used easily with glVertexAttribPointer.
This quick fix should be overwritten by a full fix that stores the
matrix data in a seperate vector and modifies the matrices with
poseable interfaces. (Will go into more detail in that commit.)
Now using GLM instead of the custom math libraries.
Sadly, this did not 100% fix the problem at hand but it does give
some closure that the math is not the problem.
Also it will be nice to have a general math library to not have to
deal with creating every math function every time.