refactors unhighlightSquares to one multiple-argument call in GamePage._highlightMove
adds Game.getPendingPremove (returns a promise) and handler for /premove
in Game

also adds a handler for Move to resolve the current /request/premoves
promise with null (there is never a pending premove straight after a
move is played)
fixes getPendingPremove in Game - adds Promise require, adds position argument to
Premove.fromJSON, adds _promises, resolves promise with null immediately if game
isn't in progress.
checks for pending premove on initial load in GamePage and clears it on Aborted/GameOver