Purge left key in branch pages on merge leaves.

Uncache the left key of the left branch page from the branch pages when
the left key is above the right key in the branch pages. Currently, the
code only clears the key on the path to the left branch page after the
key of the right leaf page has been found in the branch pages. This
works fine util the left branch page is above the right branch page.
This is the case any time the left branch page is entry in the branch
page, the least entry.

The `mergePages` function will stop its descent when it encounters
either the left or the right key of the leaf pages to merge in the
branch pages. If the first key encountered is the right branch page,
everything as it was before. If the left key is encoutered first,
`mergePages` locks the page exclusively. Then proceeds to look for the
right key. When it arrives at the penultimate branch page, if
`mergePages` is holding a lock for a branch page containing the left
key, it clears that key explicitly.

Closes #168.
Closes #165.