cbtree: Shorten time during mutations during which the INSERTING/SPLITTING flags are set
cbtree: Shorten time during mutations during which the INSERTING/SPLITTING flags are set

Concurrent readers only need to retry if they see the INSERTING or SPLITTING
flag get set. Previously, mutators were setting these flags a while ahead of
when they actually started to mutate the leaf in question. This patch moves
the setting of the flags to the last possible moment before the node gets
mutated, resulting in a few percentage point improvement on the benchmark.
(3.7% on TestScanPerformance)

Before:
 Performance counter stats for './cbtree-test --gtest_filter=*ScanPerf*' (10 runs):

      15824.951087 task-clock                #    0.998 CPUs utilized            ( +-  0.54% )
             1,380 context-switches          #    0.000 M/sec                    ( +-  0.60% )
                10 CPU-migrations            #    0.000 M/sec                    ( +- 29.08% )
           257,103 page-faults               #    0.016 M/sec                    ( +-  0.00% )
    43,709,688,452 cycles                    #    2.762 GHz                      ( +-  0.33% ) [83.33%]
    15,187,347,709 stalled-cycles-frontend   #   34.75% frontend cycles idle     ( +-  0.80% ) [83.32%]
    10,423,006,611 stalled-cycles-backend    #   23.85% backend  cycles idle     ( +-  1.97% ) [66.68%]
    60,832,319,598 instructions              #    1.39  insns per cycle
                                             #    0.25  stalled cycles per insn  ( +-  0.03% ) [83.35%]
    11,160,462,764 branches                  #  705.245 M/sec                    ( +-  0.04% ) [83.34%]
       358,443,913 branch-misses             #    3.21% of all branches          ( +-  0.26% ) [83.33%]

      15.849460242 seconds time elapsed                                          ( +-  0.54% )

After:
perf stat -r 10 ./cbtree-test-after --gtest_filter=\*ScanPerf\*

 Performance counter stats for './cbtree-test-after --gtest_filter=*ScanPerf*' (10 runs):

      15247.840496 task-clock                #    0.998 CPUs utilized            ( +-  0.69% )
             1,328 context-switches          #    0.000 M/sec                    ( +-  0.80% )
                 6 CPU-migrations            #    0.000 M/sec                    ( +- 23.54% )
           257,104 page-faults               #    0.017 M/sec                    ( +-  0.00% )
    42,905,410,791 cycles                    #    2.814 GHz                      ( +-  0.27% ) [83.33%]
    14,804,903,745 stalled-cycles-frontend   #   34.51% frontend cycles idle     ( +-  0.67% ) [83.33%]
    10,687,532,189 stalled-cycles-backend    #   24.91% backend  cycles idle     ( +-  1.96% ) [66.67%]
    60,728,133,104 instructions              #    1.42  insns per cycle
                                             #    0.24  stalled cycles per insn  ( +-  0.02% ) [83.34%]
    11,149,151,628 branches                  #  731.195 M/sec                    ( +-  0.01% ) [83.34%]
       331,159,214 branch-misses             #    2.97% of all branches          ( +-  0.38% ) [83.33%]

      15.271085677 seconds time elapsed                                          ( +-  0.69% )

cloudera/kudu,EvilMcJerkface/kudu,helifu/kudu,InspurUSA/kudu,cloudera/kudu,cloudera/kudu,InspurUSA/kudu,helifu/kudu,andrwng/kudu,helifu/kudu,cloudera/kudu,andrwng/kudu,EvilMcJerkface/kudu,EvilMcJerkface/kudu,EvilMcJerkface/kudu,andrwng/kudu,cloudera/kudu,InspurUSA/kudu,andrwng/kudu,helifu/kudu,InspurUSA/kudu,cloudera/kudu,helifu/kudu,InspurUSA/kudu,EvilMcJerkface/kudu,InspurUSA/kudu,InspurUSA/kudu,helifu/kudu,EvilMcJerkface/kudu,EvilMcJerkface/kudu,cloudera/kudu,helifu/kudu,andrwng/kudu,InspurUSA/kudu,andrwng/kudu,EvilMcJerkface/kudu,InspurUSA/kudu,andrwng/kudu,cloudera/kudu,cloudera/kudu,helifu/kudu,EvilMcJerkface/kudu,andrwng/kudu,helifu/kudu,andrwng/kudu