Fix out-of-bounds memory write in deleting subtrees.

This corrects a regression introduced in commit 48139744.
In that commit, internal details of canonicalization and other
cached computations in game objects were hidden from external
view and handled automatically.

An unnoticed side effect of this caused an out-of-bounds write
in deleting subtrees recursively.  In doing the recursive delete,
the extensive game is re-canonicalized along the way.  However,
previously deleted children of a node were not being removed from
the list of children at the interim steps, and so the canonicalization
was attempting to re-number those (now invalid and therefore deleted)
nodes.