Add timestamp functionality

Uses local time and a simple hours:minutes:seconds format to print
timestamps out to a file for logging/debugging purposes
camera: Use camera properties instead of matrices

It's a little easier to work on things like camera position/target rather
than view/projection transforms. The bind_camera() function will take
care of creating the matrix transforms and sending those off to the
shader uniforms.
context: Change how shaders are bound

Should verify there is no redundant state change occurring
IDE: Add rendering subsystem