Added a Game class to manage the game's lifecycle

|SOURCE|
[Common/DataTypes]
* Data types and constants which abstract the details away (in case of porting
  to another compiler)
[Common/Game]
* This class manages the initialisation and execution of the game
[Common/Main]
* An instance of the Game class is used to handle the program's lifecycle
[Linux/Game]
* Stubbed-out the platform-specific initialisation function