Updated ShaderProgram class

-Caches attribute and uniform locations to avoid repeated requests to
the driver
-Improved teardown
-Validate the compiled program before returning it
Full screen quad is now drawn with a geometry shader

-Vertex array is no longer used to generate the full screen quad
-Vertex information is generated inside the geometry shader
-Vertex shader is empty
-Removed all related functions/variables
Updated README file