First commit with GraphicsEngine drawing stuff!
CubeModel changed to use draw faces 0.5 units from center on all sides, more consistent with industry standards (particularly physics engines)
GraphicsEngine changed to be a window member, only deleted once window goes away.
ShaderProgram now stores the references for the vert and frag shaders, this is temporary so the code can be left in openGL wihle the program is loaded for debugging.
Shaders now use Uniform Buffer Objects rather than individual uniforms. Only one piece of OGL memory has to be changed for all shaders to recognize changes to the matrices.
Shaders are left active after construction, this may be changed later on but right now the code to activate them isn't implemented because decisions need to be made on how exactly that will be done.
Scene Nodes can be default constructed or constructed with a model and modelToWorld matrix.
Graphics Engine now stores modelToWorld and worldToCamera matrices and then concatenates them and sends them into openGL whenever one changes.
 - This allows both of these matrices to hold double values so they can draw objects at extreme distances from the world origin, as long as they remain a reasonable distance from the camera as the final modelToCamera matrix still uses single-precision floats.
CubeModel draw command takes modelToWorld matrix... like it always should have.
Scene now has a command to add a node to it.
Corrected the colorIn parameter for the color vertex shader. Converted shader to use uniform block.
Added code for scenes, they do things now!