Adds GameEndedEvent and a method on GameState to end game.
Adds tests for End() (which caught several bugs with the 'sequence'-finding algorithm.