Works (slowly) for solveable puzzles
implemented unsolveable detection
Fixed hamming, manhattan and added tests