Compile boxing and unboxing ops as primitives.

Boxing a value x of type Int is now
$.bI(x)
Similarly, unboxing a value y of type Boolean is
$.uZ(y)

This reduces the generated code size by only 0.5 %, but
as the bX and uX functions are written "as if" they had
been inlined completely, this should be a bit faster too.