Peek right gets key and immediately releases lock.

The peek at the right leaf page on insert to resolve ambiguity about the
proper page for a key that greater than the greatest key in the leaf
page no longer obtains and holds an exclusive lock. Instead it get key
using a shared lock and immediately releases the shared lock.

The key of the right leaf page might change. It might get deleted. If it
is deleted it is now a ghost. That ghost might get exorcised
(permanently deleted) This would change the key of the right sibling
leaf page, making the results for our of inclusion different. It would
seem that different is bad, so let's hold that write lock because I fear
change. We all do.

The key value for the leaf page is the first record in the key page. It
is therefore, the least value of that key page. When you exorcise a
ghost of a leaf page, the key value can only increase. If the leaf page
key of the right leaf page changes it does not invalidate any of the
tests performed against the deleted value. They are all still less than
the key of the right leaf page.

After we cache the key of the right leaf page and the key of the right
leaf page changes, subsequent tests might falsely report that a record
does not belong on the current page. When this happens, the user is
going to descend the tree again to find the correct leaf page, which is
always a safe bet. It's a missed opportunity to insert the record while
we're there, but it's not going to cause corruption. It's likely going
to be rare and we've decided that descents are cheap and the path we
take when in doubt.

It occurs to me as I document this, that there is case where we fail
because our cached key says we fail, but we're navigating with a sorted
list of items to insert and delete, so we advance to the next leaf page
hoping to see if we can insert there, but we're told we fail again. If
we've chosen a table scan for our approach we will continue to fail
until we get to the end of the tree.

The more likely approach means that after two failures we will descend,
but we could also simply return an integer to indicate failed because it
is less than or failed because it is greater than.

This is an increase in liveness. Leaf page mutation will only ever hold
and exclusive lock on a single leaf page. It will only occasionally
obtain an additional shared lock and then release it immediately.

Closes #111.