Do a minor computation once and early, rather than multople times and late.
Give up on freeing rev_file objects, this lets us reduce their size.

All regression tests pass.
Slab-allocate rev_file objects; this should cut out a lot of malloc overhead.
Remove dead code.
Last commit was a bit messed up. Fix things.

Dead code removal was OK but a function move from revlist.c to revcvs.c was
also in the commit.  This complees the move.

All regression tests pass.
Slab allocation for hash nodes.
Commit slab allocation.

Means we have to pretty much give up on ever freeing the CVS structures,
but the fact that this was done just before exit means it hardly matters.

All regression tests pass.
Move the merge black magic into its own file...

...separating it from the revlist utilities used by both it
and the analysis pgase.

All regression tests pass.
Information hiding.  All regression tests pass.
rev_list_validate() was doing nothing.

Condition it out, but turn it into a predicare and keep it around.
We might want it someday.

Alll regression tesrs pass.
Begin commenting the merge code with more undersranding.

All regression tests pass.
Identify a place where it might be deasible to trime working set size.

Probably not worth it though, as there's only one set of git branch
heads for all masters.
Minor code cleanups.  All regression tesrs pass.
More comprehension of the merge code. All regression tests pass.