Ported the entire move selection code. Also, fixed a bug in Partition() that failed to handle singleton partitions. Also, added to the DFS test to test singleton partitions, and renamed the FillEmptyWithRandom functions to a less verbose but about as meaningful FillEmpty() and FillEmptyExcluding().