Implemented GameTree - The subcontroller for the gameTree now generates a tree data structure will all possible paths of the game.  This will be used by the AI to search for it's best move.
***Current issue: The game tree finds the correct number of moves for 1 and 2 ply searches, but beyond that it finds more than it should (by a few hundred for 3 ply, a few thousand for 4 ply).  Need to fix this before AI starts using the tree.
***For a depth of 6, the program gets a "java.lang.OutOfMemoryError: GC overhead limit exceeded" exception. This is due to the enormous size of the tree when looking a few moves out, will need to look into this if the AI will be able to look far ahead.  There is also lots of optimization that can be done to reduce the size of the tree.