Added a cloning constructor to the Puzzle class.
Refactored the solution algorithm in the PuzzleSolver class