Detect an internal error rather than passing it to an importer.

All regression tests pass.
Speed up the final save phase by memoizing fileop_name

Today I learned that although callgrind is much slower than gprof
it is also more useful.

I apologise for using the obtuse hash header again.

Sped up emacs fast order save phase from 294s to 57s

That's even more speed up than I got from excluding my blob
directory from the virus scanner.
Successfully stripping logs.
Content stripping, but it should be done better.
When stripping, comments are replaced with MD5 hashes.
Prepare for directory traversal.
In cvs-reduce, directory-trabersal code.
In cvsreduce, directory traversal seems to work.
Emit trailing ; required by CVS master grammar.
Somehow, promiscuos mode was unimplemented.
Generate delta operations in correct format.
Fix a string leak.
Fix a build bug un passing Bison flags.  All regression tests pass.
Document cvsreduce better.
Sort cvs masters after analysis to avoid sorting on output

Slightly modified version of a patch byLaurence Hygate
<loz@flower.powernet.co.uk>.  He said:

"If we sort the cvs masters into pack order after the analysis
phase, then the order is maintained through to output, meaning
we don't have to sort multiple output file lists."

"This produces a different import stream for the emacs historical
cvs repository than HEAD. However, I can't detect any broken
invariants. emacs is sensitive to the order of input files anyway."

"Reduced the "merge common branches" phase from 52s to 23s on emacs CVS".

That kind of order sensitivity means two different masters have CVS
revisions with the same timestamp.

All regression tests pass.
Excessive attempts at precision in the tinings are just confusing.
cppcheck cleanup.
An attempt to optimize output throughput.

All regression tests pass.
Threading actually gains throughput now...

...even on my 2P machine.  Dunno what changed.