Implement a denser, one-line format suggested by mhagger
Weigh creation patches by a constant factor

It turns out that giving creations (i.e. commits missing on one side)
full weight is actually not brilliant; they become so expensive that
it is better to match up two almost-unrelated commits.  So make it
configurable, and tentatively put the weight at 0.6 so that the sum of
two creations is somewhat above half a rewrite.
Fix weight of creation diffs

The weight of creations (leading to "missing" commits) was wrong: it
counted the length of the full patch, not the length of what we
actually feed into diff to compute the distance.
Fix computation of "new" commit set

A stupid index off-by-one.
fixup! Implement a denser, one-line format suggested by mhagger
Also look for LHS-only commits at the very end

Otherwise we would never show them.

Done mostly by refactoring into an ad-hoc helper.
Refactor formatting into a separate routine

The old method got really tangled.
Don't print a progress bar on stdout

In practice it's fast enough to just wait.
Do partial line coloring in the ! case

By moving more logic into format_commit_line, we can have it format !
lines (matched commits with a nonzero interdiff) with color within the
line.