This properly implements the formatter for floating-point types.
Completes:
- P1652R1 Printf corner cases in std::format
- LWG 3250 std::format: # (alternate form) for NaN and inf
- LWG 3243 std::format and negative zeroes
Implements parts of:
- P0645 Text Formatting
nit: I'd suggest renaming __trailing_zero to something reflecting that it's the number of trailing zeros, e.g. __num_trailing_zeros or at least __trailing_zeros. Right now it looks like a flag indicating whether to write trailing zeros.