Minor refactoring.
A few more puzzles.
Minor edit.
Detect impossible case.
Rename Cache to MoveCache so we can have more kind of caches.
Cache impossibility calculation.