Add bfg-benchmark option to disable git-filter-brnach benchmarks
Tweak to cacheLoader to make a move to futures easier

The postCalc callback makes attaching onComplete events to a returned
future easier/more flexible - so we can add an onComplete with the
'fix' call.
record cache stats...
Use separate caches for commit, tree, tag etc
Futures for just the commits, not the trees?

Ideally though, we would like to parallise top-level trees,
because trees are much more susceptible to parallelisation - doing
every single tree entry with a future might lead to perf problems,
but top-level trees are currently par - and unlike commits, they don't
have the inherently sequentially-dependent nature of commits

CPU cores will never be starved of work, as there are always other commits
and commit-trees to clean - no need to share cleaning of a signle tree.

Runs & passes tests... but benchmarks sloooow against wine

cut out the middleman, go direct

Perf verging on tolerable

I should probably use traverse more

short-cut some more work, go direct to commit cleaning for parents