ShaderProgram added

This class is responsible for handling all kinds of shaders (right now,
vertex and fragment shaders), including the variable values inside the
shaders. Should any of its tasks fail, the user will be notified via
Console output and, sometimes, a function return value.