Allow split nodes to be merged with the next node.

This commit changes the node.split() functionality to check if the next node has
available space and, if so, it will merge the newly split keys into the next node.

Previously, keys could be continually put into the left side of a split causing that
first half to split off small right side nodes. This was especially problematic with
databases with a high fill percent.
Fix merge-split spill issues.
Merge pull request #181 from benbjohnson/split-merge

Allow split nodes to be merged with the next node.