Added frustum support from Camera. Cleaned up projection code a bit.

In order to support more explicit frustum setting on camera, added entry points to the Camera class. Extended orthoMode/orthoSizeMode to encapsulate the general projection mode, while maintaining public-facing APIs (I think). Pulled the state of the projection matrix settings out of the renderer and into the camera. Cleaned up division of responsibility between viewport and projection matrix.

Also:
Removed some redundant OpenGL API calls.
Fixed the typo clippping -> clipping.