The purpose of this ticket is to relax the underflow and overflow thresholds on the B+Tree so we can begin to tradeoff reduced structural modification rates with concurrent writer threads.
1. Modify the IndexMetadata to allow us to define relaxed underflow and overflow conditions.
2. Update the B+Tree implementation to only rebalance when those relaxed thresholds are tripped.
3. Update the B+Tree to choose the shortest separator key since we now have a range of keys that we can choose from (BLZG-376).
4. Write tests for all this.