Refactor: GameModel class combines board state and gamestate
Initial implementation of undo move