Added more error checking to makeShaderProgram()