Added facilities for exploring a tree of moves

grids can return what they would look like after a move
grids can return themselves represented as a normalized array
grids now support their own move logic
    (don't use this feature to control a game, use a gameManager)