Added GameStates and ValidMoves classes

To help prevent typos when specifying moves and game states.