refine toString debug function
add clone to Reactant and Product, for Game
port big chunks of the Game model from Java (untested by seems to pass requirejs)