Create Shader class so we can have a vector of shaders, rename GLSLProgram to ShaderProgram, modify the demo projects to use the new structure