Added shader functions for the gl_retained_object_manager class, updated the opengl mock to more closely imitate OpenGL, refactored shader and shader_uniform_map tests to work with the changes to the mock, and updated documentation