Refactored NPuzzle a bit toimprove readability.
Implemented the LinearConflict heuristic.
Refactored and improved the performance (a bit) of the ManhattanDistance
Improved the IDAStar algorithms so that they now skip a level if they can which will greatly improve the efficiency of the algorithm in certain situations.
Refactored the IDAStar and ParallelIDAStar algorithms. They are much cleaner and the way that the ParallelIDAStar algorithm starts up and manages its threads has greatly been improved.

Also added a bunch of comments.