General Constraint-Based Puzzle Solver