Forgot to delete OpenGL program object.

The OpenGL program object was not being deleted in the destructor for
the shader class, this has been fixed.
This folder is where the OpenGL shaders will live.

For now a very simple shader has been added to make sure the OpenGL
context gets created correctly and that the camera works correctly.
Initial Camera Class.

This is baseline for the camera class. Currently it doesn't do much and
is really only stub methods. Eventually it will support all the
functions it claims to.
Added a few more compiler flags and the GLEW library.

-g -> For now leave debugging on
-pedantic -> Make sure we follow the C++ standard.
-std=c++03 -> We're using the 2003 C++ standard.

GLEW was added because the program was segfaulting trying to use some of
the more advanced OpenGL functions (like glGenVertexArray). Apparently
these aren't loaded by default so GLEW was needed to get those loaded.
Cleaned up main. Added a call to initialize GLEW.

Pulled some of the constant definitions out so they're easier to change
later. Also added a call to GLEW so the required OpenGL 3.X functions
were loaded. Also updated the calls to the Application class' changed definitions.
Updated Application Class.

-Changed function signatures of Update & Initialize
-Added a constructor and Destructor
-Filled in Initialize/Update/Render with a test scene to make sure
everything works.
-Updated header comments.
Updated Shader Class.

A couple of changes were made to the shader class.

It seemed desirable to be able to create a shader object and then load
the shaders later. This is why a default constructor was added.

A new method GetUniformLocation() was added to make it easy to get the
locations of uniforms variables for the current shader. This method also
caches lookups so it doesn't have to ask the driver every time, which
can be expensive.

Changed create_program -> LoadShaders()

Added more comments and fixed class variable names so they start with
'm_'.