Balance the branch-tree in encodeInteger
Balance the branch-tree in encodeInteger

Before, it was a straight line of branches, which meant that the
number of branches (the branch depth) required before reaching varied
between 1 and 9, like this:

[-1 << 63, -1 << 31) => 1
[-1 << 31, -1 << 15) => 2
[-1 << 15, -1 <<  7) => 3
[-1 <<  7, -1 <<  5) => 4
[-1 <<  5,        0) => 5
[0       ,  1 <<  7) => 6
[ 1 <<  7,  1 <<  8) => 7
[ 1 <<  8,  1 << 16) => 8
[ 1 << 16,  1 << 32) => 9
[ 1 << 32,  1 << 63) => 9

This balances the branch tree, making it three or four branches deep
for every case:

[-1 << 63, -1 << 32) => 3
[-1 << 32, -1 << 16) => 3
[-1 << 16, -1 <<  8) => 4
[-1 <<  8, -1 <<  5) => 4
[-1 <<  5,        0) => 3
[0       ,  1 <<  7) => 3
[ 1 <<  7,  1 <<  8) => 4
[ 1 <<  8,  1 << 16) => 4
[ 1 << 16,  1 << 32) => 3
[ 1 << 32,  1 << 64) => 3

larskanis/msgpack-ruby,larskanis/msgpack-ruby,nurse/msgpack-ruby,okkez/msgpack-ruby,kou/msgpack-ruby,ojundt/msgpack-ruby,kou/msgpack-ruby,msgpack/msgpack-ruby,ojundt/msgpack-ruby,ojundt/msgpack-ruby,msgpack/msgpack-ruby,larskanis/msgpack-ruby,nurse/msgpack-ruby,cosmo0920/msgpack-ruby,okkez/msgpack-ruby,cosmo0920/msgpack-ruby,nurse/msgpack-ruby,msgpack/msgpack-ruby,kou/msgpack-ruby,nurse/msgpack-ruby,kou/msgpack-ruby,larskanis/msgpack-ruby,okkez/msgpack-ruby,cosmo0920/msgpack-ruby,cosmo0920/msgpack-ruby,okkez/msgpack-ruby,ojundt/msgpack-ruby