Fixed camera calculations

Added generic camera calculations to move all around
Added walking camera specialzation of generic camera
Added new shader class abstraction

New generic shader class and OpenGL implementation class