Implement wait-for-change for front-ends

This implements a new RPC call "game_waitforchange" (with optional argument blockHash) that waits asynchronously (without stopping the node or RPC server thread) until a change in game state happens (respective to the given block hash) and only returns when that is the case.  It returns the same output as game_getstate.

This means that front-ends can simply wait for a result from "game_waitforchange" and whenever they get one, update their map view to be up-to-date in real time without burdening the server with repeated RPC calls checking for a new state.