Fixes solve_it

There was an issue with `cost` being incremented each time a state was pushed to the priority queue. It was not accurately reflecting what move most states were on. This also caused the heuristic function to overestimate in some cases and prevented A* from converging on a solution.

Although the algorithm now seems correct and solves random 8 puzzles in a reasonable amount of time (the worst case 31-move solution being found in about 5 minutes), it is still too slow to solve a random 15 puzzle.

I'll try adding linear conflict to the heuristic first, and if that proves insufficient, I'll look into switching to IDA*, as well.
Updates test for #solve
Updates progress status