Stores information about the whole game.
This implements game logic to process actions and check scores.
It is also responsible for generating GameView objects from the perspective of
the current player (self.turn)
Strategy trait implements get_action method to generates an Action based on a GameView.
These can include user input, but are mostly computer players.
Returning None will halt the current game.