Graphics related code changes

Centralized shader setup-code and other graphical setup-code (removed
redundant code) and improved use of shaders slightly.
Cleaned up VBO/VAO initialization code for 3d mesh objects (added
helpful comments and whitespace formatting)
Minor Revisions/Additions/Removals

removed input_mgr::remove()
added texture_mgr::find()
revised input_mgr::add()

Input queue can no longer have duplicate keys
GUI foundation

created a foundation for a GUI. The basic class hierarchy now exists for
creating a flexible GUI