[games] Mastermind: fix unnerving game reset bug interacting with the queue

After two players finished a game, the following call to `reset` started by
calling its super method, which in turn prepared a new game (`on_game_start`)
before Mastermind's `reset` had had a chance to update the 'state' field to
"no current game".  The result was that a game was started and put in the
select phase, and then 'state' was set to "no current game", which meant that
the server ignored all requests from clients.

Additionally, this commit re-structures how the Mastermind frontend handles
the blinking cursor to make it more resilient to bad server-client
interaction.  Previously, there was a local state that kept track of whether
to draw to the "main" playfield or the separate "code-selection" 'playfield'.
Now, we instead send a special 'select-area' property in requests that are
meant to update the "code-selection" field.
Merge branch 'master' of https://github.com/smab/playhouse-web