Make Shader movable, refactor ShaderProgram API