Rename boxed type classes from *Value to Boxed*

This has a couple benefits:

- Using these names is more clear in the native function decl. For
  example, 'boxed-exact-integer' is unambiguously boxed while
  'exact-integer-value' could be interpreted as referring to a bare
  integer.

- BoxedDatum is no longer a special case. The base type has been renamed
  from 'boxedDatum' to 'datum' and naturally kept the 'Boxed' prefix