PuzzleSolver class now correctly solves puzzles with multiple solutions in a reasonable amount of time.
Reformatted code.