GameSession added, GameState methods updated

The GameSession class was added. It only contains a constructor, join()
and leave(), all of which are still stubs.
The findWinner() method was moved from GameRules to GameState.
Updated the methods in GameState to use the Coordinates class and
removed methods I didn't think we'd use (most were setters).
Because of this, the bot code is fairly broken now, but it'd need
significant changes to work with the GameSession class so I haven't
tried to repair them this time round.