Significant reduction to memory usage

The search tree no longer keeps the entire tree in memory.  As soon as
it finds a new branch with a higher score, it will discard all other
branches.

Also, removed the assumption that the order of plays does not matter.
This change significantly increases the number of nodes the AI has to
search, but it makes the search faster on a per node basis.  It looks
like the overall effect is to make the simulations a little slower, but
oh well…