Move toJSON and GameState.addUnit into gamestate.js
Call other toJSON()s directly instead of relying on JSON.stringify
Made JSON<->Map<->GameState conversion more explicit

Added another test for toJSON/fromJSON interaction

Moved instance methods into their protocols

The map editor test now instantiates a GameState object directly for
testing instead of relying on fromJSON