fmt_utf8 encodes a 31-bit unsigned integer using the UTF-8 rules. This
can take from 1 byte (0-0x7f) up to 5 bytes (0x4000000-0x7fffffff).
Values larger than 0x7fffffff cannot be represented in this encoding.
If dest equals FMT_LEN (i.e. is NULL), fmt_utf8 returns the
number of bytes it would have written.
For convenience, fmt.h defines the integer FMT_UTF8 to be big enough to
contain every possible fmt_utf8 output.