Using prevNode instead of pq
Fixing solving puzzle 11 & 17
Creating second thread to check the feasibility.
Optimizing isGoal() to find the first difference instead of calculating the whole hamming. Optimizing the distance() function to not use the goal to reduce the memory.