Second prototype for new game engine design

Updated new design
States now define how input behavior will be defined
There is a singleton game manager and a singleton input manager
The game loop occurs in the game manager and makes update calls to the
current state via the state manager