Log FPS and turn off vsync for the time being.
Moved the input controller and window loop functions.

Previously they ran as often as the window was redrawn. They now run in
lockstep with game updates. Previously because the state ran in lockstep
but the input controller didn't, mouse position updates were being
missed and so scrolling wasn't as fast as it should have been.
The graphics controller now draws the current state.

This means the graphic controller itself no longer needs separate
functions for drawing the scene and the foreground. It also means it is
now capable of drawing things on top of everything.

Sprites should now be drawn through the controller itself too rather
than directly, so that the controller can do bounds checking on the
camera to see if the sprite actually needs drawing.

Bounds checking is crude and incomplete for now (for testing).
Added FakeIt mock library.

Maybe I'll actually start unit testing now.
Reorganised the project to allow for coverage reports too.
Only render sprites that intersect with the camera.

Doesn't take into account the zoom for now.
Sprite draw clipping now works even when zooming.
Sprite clipping takes into account the sprite's originX/Y.
Camera has getters for the zoom level and the actual zoom multiplier
Added reminder of what length/width/height are.
Added map loading from a file.
Prevent scene dragging being set to true straight from the start.
Move game field length/width to grid object.
Use nullptr instead of NULL.
Added bitmap fonts, clipping for rectangles and text.
Added rectangle class and used it for clipping calcs.
Doxygen now warns about undocumented elements.
Use make_pair to remove redundant typedef.
Doxy
Implementation of texture atlases and fonts.