merge_lo() had a bug where we would bound the B array at the point where we need
to insert the last element of A. The problem was that sometimes that index was
after the end of B, because the last element of A was larger than the last element
in B.

Solution is to MIN(last_a_in_b, b->nel - 1) to make sure we don't end up bounding
the B array by -1 since it would en up with an extra element. The astute reader might
be wondering if there isn't a similar bug in merge_hi(). I will investigate this shortly.
It turns out the same bug was not present in merge_hi(), but it was different nonetheless.

In my efforts to fix merging I assumed there was a problem with the bounding, while it was actually
the find_index() function. This is how this bug got introduced: it solved another bug somewhere else,
and I had not updated merge_hi() with the same bug, but instead fixed find_index(), revealing this one.

The original code was correct all along, and also much nicer.

Bounding the array by the insert index means just subtracting that from the count,
which reduces to 0 when the insert location is after the array, since then count and index
are equal.