Major breakthrough on memory issue

I wrote the OptimalRobotsPlayer logic in a more functional style,
eliminating the inner class TreeNode, and this ultimately moved
everything onto the stack (as local variables) instead of the entire
heap (no more "out of memory" errors). OptimalRobotsPlayer can now solve
the updated easy_test_board in just under 9 minutes on my machine,
finding a slew of correct 6-move solutions. Also fixed some bugs and
made the presentation a bit nicer.