Ryu: add support for maximum significant digits (#33520)
* Ryu: split out reduce short routine
* change variables to match paper
* Add support for specifying maximum significant digits
* improve printing of Float16
* fix additional tests
* add tests for printing subnormals
* change format-specific numbers
* simplify calculation of lookup tables