Client UI improvements. Constrain input to clicking on board.
Implement unbeatable strategy.

This overly-large commit is where we codified the unbeatable strategy. Here we also identify and handle the end-of-game scenarios (win/lose/tie). At this point we can clean things up a bit, but we are feature (and challenge) complete.