Added path based corrections to complement global based correction.

Still has some issues where you've got to derive a new
child class for every heuristic you might want to correct, but that's
not really the worst of it.  Honestly, the real problem with the path
corrections is that you'd make a map for every herustic, when instead
you could store a larger set of data with a single map.  So, while
this serves to demonstrate how it's done with a single heuristic, for
efficiency's sake, we'll want to do a single association.