Box small integers as Longs like Clojure, not Integers like .getNumberValue()

This is consistent with the way that Clojure handles small integers, and can avoid unexpected issues downstream when you attempt to, e.g., use these numbers as keys in a HashMap and then look them up with Clojure integer literals.  

I guess it's technically a breaking change, but it didn't break the tests, and Clojure itself has waffled a bit on this sort of behavior without much hubbub (e.g., (int 2) produced an Integer in Clojure 1.0, then a Long in Clojure 1.3, then an Integer again in 1.4, if my memory serves me right).