Fixed the default constructor on the utility lights.
Refactored the material loader.
Updated the simple ligthing sample.
Exceptions are now caught by const reference.
Desktop GL context now creates a VAO if required.
Refactored the state setting before draw calls.
GL function object asserts that the function is loads is valid.
Make sure to not throw an exception on shader destruction.
Shader generation now does spot lighting and light attenuation.
Fixed a bug where some state objects were not returned by const reference.