add format() methods to game_state objects, and add optional args to con...

...structors.  This will allow all objects to be recreated from their format methods