Cache game state more aggressively.

This patch introduces a memory-only cache of calculated game states, replacing the previous caching of just the current state.  When resolving short reorganisations / orphan blocks, this helps massively as previously, for each step backward in time, the state needed to be calculated from the last saved state.