Quaternions, 4x4 Matrix & 4D Vectors

Added Quaternions, 4x4 Matrices and 4D vectors in the coming additions
of transform matrices for entities.
Another, albeit conceptual, change to matrices has happened. We now use
the proper conventions of vectors becoming column vectors instead of
rows. As such the implementation of the initialisation and any-other
dependencies on this idea should now be changed to using columns.
Honestly, why did I just not use that in the first place -.-
Also cleaned up a little bit of code in places.