Added a basic game state manager and a Set class

|SOURCE|
[Chunk.cs]
* This contains all the file chunk related constants, reading and writing of
  chunks, and any helper functions
[Game/Game.cs]
* The GameStateManager singleton is used to manage the lifecycle of the game
[Game/GameState.cs]
* GameStates are the base class which is used to build game states, a game
  state has an entry point, exit point, and an execution loop
[Game/GameStateManager.cs]
* This is a singleton which allows for game states to be registered and later
  pushed onto the game state stack by name
* When a game state is popped off the stack, it performs any cleanup it needs
  to
[Game/MenuGameState.cs]
* The menu state is responsible for viewing options, starting the game, and
  exiting the game
[System/Set.cs]
* The Set class maintains a single copy of each object added to the set