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... would be nice to short-cut some more
work, go direct to commit cleaning for parents, but currently a test fails.

Perf verging on tolerable

I should probably use traverse more

Fix object-id map to include tree, commit, tag memos