Principal Variation Move Ordering Implemented
-Restructured the GameTreeController to actually hold a living copy of the game tree that gets updated and keeps track of all legal moves explored.
-Updated the alpha beta recursive methods to use this instead of looking for legal moves all over again.
-Set up principal Variation move ordering (when a new alpha/beta value is found, that node gets moved to the front of the parent's children array, so that the next time it is visited, it will the the first to be examined).
-Removed a cloned method (processMove) in the controller, so that the AI method gets called directly, and the method for the user calls validation checking and then the AI method once the move is known to be valid.

Note: No notable performance gains from adding PV, so there's probably still some issues going on.  Need to go back to Alpha Beta without PV to record number of nodes visited and search time for comparison.