Added more shader support, included a ShaderProgram class.