MergeFrontier.compute_by_bisection(): Tighten bisect lower bound

Tighten up the lower bound for the first bisection done in
MergeFrontier.compute_by_bisection().  Since block.is_mergeable(1, 1)
was just called successfully a few lines earlier, we know that the
first unmergeable commit must have i2 >= 2.
MergeFrontier.compute_by_bisection(): Avoid redundant test merge.

If i1 is in the last column, then there is no reason to do a test
merge in the last column *again*.

This was causing an actual failure for a user when the first test
merge succeeded but the second one failed.  This change helps prevent
that error by using the cowardly way of always getting consistent
answers: don't ask the same question more than once.
MergeFrontier.compute_by_bisection(): Avoid redundant test merge.

If i2 - 1 is in row 1, then there is no reason to do a test merge in
row 1 *again*.

The redundant testing could have probably caused bugs like the one
described in the last commit.
Merge branch 'remove-redundant-test-merges'

Graham Gyatt <ggyatt@apple.com> reported a failure that was apparently
caused by executing the same test merge twice with inconsistent
answers.

This merges in a few changes that avoid the problem by not repeating
test merges redundantly, and thus never getting inconsistent answers.