Simplify implementation of truncating conversions

* Move the truncation into formatValue() where it should arguably be -
  the user should be able to decide to ignore it for their custom type.

* Simplify argument passing classes, which no longer need to have
  the truncating conversion as a separate method.