Do not box Booleans, Doubles and Longs.

These three primitive types have a perfectly valid and
identifiable JavaScript representation already, respectively
boolean, number and RuntimeLong. Therefore, there is no need
to box them in a java.lang.{Boolean,Double,Long}.

The only thing that we lose semantically by doing this is
that the toString() method of a Double will not add the .0
it used to add when the value happens to be an integer. For
consistency, this behavior has also been removed from Float.