Modified Clock code, and moved files deeper into folder hierarchy.

* Clock can now only have one instance, which is acquired through a static Clock::WallClock() method
* all timers now must inherit from ITimer, which is a base class used by the Clock to advance their time
* Clock, ITimer and Timer are split into separate files
* move Engine, GameContext, GameContextEvent, ServiceLocator and ResourceLocator into the Engine subfolder
* refactor code throughout the codebase to reference these files in their new location