changed pausing to listen to events

added events for GamePause, GameResume, GameReload and GameExit to
GameController and InputManager. Also refactored variable protections,
added properties where appropriate and put more of the pause logic from
the time manager to the game controller
put TimeManager code into GameController

put all the TimeManager logic into GameController and changed everything
that depended on the timeManager