Fixed a bug with which heuristic is used. Finished documenting.

Stupidly forgot to do a switch in the heuristics choice in the search. The
program was initializing the first state with the correct heuristic but each
subsequent heuristic was the Manhattan heuristic. Needless to say the results
were skewed because of this. I should have fully documented the code I added.
Changed A* to be usable for both searches.

The A* and Greedy Best First searches are virtually identical algorithms with
the only difference being their comparator evaluation. By merely adding an if-
else I can use the astar method to run both searches as well as both heuristics
that are required for this assignment. Yay for less lines of code. Yay for
finishing documentation. Yay for this assignment is done.
Added *.tar.gz to the ignore list.

Dr. Tran wants all files tarred up to be submitted. I do not need a second copy
put in my source control. This change alleviates that problem.