Modified how I was dealing with puzzle moves. A move class now encapsulates much of the puzzle movement logic.
adding file that went missing when it was moved.
Added the N-Puzzle and got it working with the IDAStar and ParallelIDAStar.  Did a bit of refactoring to the RubiksCube now that I have more than one puzzle type that can be solved with the same algorithm.
Made changes to the ParallelIDAStar algorithm to better support different puzzles. Added a configurable setting that sets the number of tasks/threads to use during the IDA* Search.
ParallelIDAStar now calls the normal IDAStar when MinNumThreads setting is set to 1. Changed solution state from having the blank space at the end to at the beginning.
Fixed a tiny bug with the ManhattanDistance that I introduced accidentally when changing the solution state in previous changeset.