Added the GameContract.

@bsoetaer 
Another invariant that we could potentially use is that the dimensions of the game board did not change in any way. This is unlikely but may be useful.