[#36] - Refactored ShaderProgram into an abstract class.