Add untested attempt at LFPB caching mark 2, needed to analyse examples like date.
Update other implementations of walkers to match new interface, and remove some junk code
Fix our idea of when you can start using making cached results

Now we:

a) Maintain an idea of the latest certain block not subject to a backedge in the main loop
b) Only cache results that come from prior to there, and create cache entries at that block
c) Scrap our cache entry if we bail out early
Move LFPB timing to where we have more information and print a detailed report when it runs slow. Also avoid deleting cache entries until we're sure we're keeping the new one.
Don't try to evaluate FP compares as pointer comparison