Created States and Rounds

@mgruchacz Please go over the **814 line additions** and the **177 line deletions** I made by tomorrow night :trollface:

Excuse my poor joke, I just had to use the troll face. You don't have to finish this by any deadline, but since it is a relatively major update, it would be beneficial for the team to work off it rather than merge it in later.

## State
A **state** is a high level representation of the games current form. **State**s such as **MenuState** and **GameState** don't have much in common (on purpose).

## Round
A **round** is a in-game "state."  

The difference between a **State** and a **Round** is that a **State** is broad while a **Round** is specifically molded to be used by the **GameState**. The playable game is divided into multiple parts, so rather than create 20+ **State**s, I defined a **Round** to be a _sub state_ of **GameState** 

## Unit Tests

I created unit tests for both State and Round, but not much testing can be done without additional game code.