Do not box Bytes and Shorts.

Again, this reduces the ability to distinguish a boxed Int from
a boxed Byte or Short. Here, we use the same range-based approach
as for Int vs Double: a number x will answer true to
x.isInstanceOf[Byte] (resp. Short) if it is an integer in the
range [-128,127] (resp. [-32768,32767]).

However, Integer is still privileged over Byte and Short in the
sense that x.getClass() will always return
classOf[java.lang.Integer] for integer values, regardless of their
range.