Deferred lighting implementation & conversion to OpenGL 4.2
Shaders now all use binding layouts. No need to use C++ to set the bindings after compilation.
Added geometry buffer code to GraphisEngine.
More concise shader definitions in GraphicsEngine constructor.
Using a 'UBOSetup' dummy shader program to obtain offsets for UBO blocks.
Creation of buffers & textures for shadowmapping.
Generation of geometry buffers, which hold intermediary data before rendering is complete. New geometry buffers are generated each time the viewport is resized.
DrawScene completely reorganized. Now does a geometry pass, followed by a lighting pass for ambient light and sunlight. Passes for point and spot light still need implementation.
Code to generate shadow map for sun is present, but currently commented out while I'm working on the deferred rendering.
AmbientQuadModel is a 'model' of a quad already in clip coordinates that covers the entire screen. Used for rendering the ambient and sunlight. Will be changing it's inheritance, as it's not a true model.
SphereModel is a model of a sphere. May have to split this into 2 classes, one for use with lighting and one for use when actually drawing spheres.