Ensures subnormals aren't formatted grossly wrong nor cause hangs.
Reveals two additional bugs:
* The requested number of digits is not always produced.
* The precision isn't enough to distinguish every float.
Outputs from the (nominally) original assembly implementation running on
a real AVR (avr-gcc 7.3.0) are included. That implementation exhibits
none of these flaws so it's likely they have been introduced during the
C port.
Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>