Nigh-complete fix for job 4 - the "scan" methods all
go from tail to head now, and Get uses the improved
"addAfter" method where appropriate.
An unforeseen problem was the fact that a complex integ
history can get followed through more than one possible
path, causing later versions of a given file to get scanned
before earlier versions, and messing up the graph.
This is fixed (albeit in a kludgey fashion) in scanMain here
by making two passes through the FileHead, caching the files
on the first pass and actually running scans on the second
pass. A slightly more efficient way of handling it might be
to keep a list of FileRevs that need to be scanned - perhaps
by declaring a temporary FileHead to serve as a list? Once
it's been hammered out in scanMain() satisfactorily that method
can be employed in the other scan methods.