Implement synchronous binary search for branches.

When we are in a branch page all of the keys will be in memory so we do
not need to perform the key lookup. Our binary search is a place where
we optimize first, regardless of benchmarking. It is the premise of the
b-tree algorithm, so anything that would obviously make it faster should
be favored over simplicity.

While locking through Sequester has added a few more function calls,
looped binary search has removed many more.

Closes #190.