This causes significant changes to the DBC interface. Things are
probably a bit broken right now. Committing to get it on record
before further large changes are done.
Numbers are formatted as floating point numbers, which looks
a bit crap for things like e.g. serial numbers (we don't need
mantissa and exponent). This change checks the scaling factor,
and if it is integer representable, the resulting number is
formatted as an integer number as that's most likely what's
intended, particularly if the factor is 1.