Added geometry shader support to the Shader class

The shader class now takes an optional parameter to load a geometry shader.