gdtoa: Sync to match the latest version at netlib.org

As of Jan. 06 2023. Changelog from http://netlib.org/fp/changes (filtered):

20121220
  dtoa.c and gdtoa.tgz:  to avoid a possible one-time race when
Infinity or NaN appear in decimal->binary conversions done in parallel
threads, replace hexdig_init() with static initialization.

20131209
  dtoa.c, gdtoa.tgz: when strtod computes its starting approximation,
allow z to involve one more digit for IEEE arithmetic and two more
digits for IBM-mainframe and VAX arithmetics.  Thanks to Walter Qian
(water.qian@gmail.com) for suggesting this change, which makes some
conversions faster.

20151020
  dtoa.c:  add a test for dtoa() to return "1" under mode 4 when
converting some very small powers of 10, such as 1e-322 with
ndigits = 4 and 1e-319 with ndigits = 7 (examples provided by
jay.foad@gmail.com).

20160219
  gdtoa.tgz: Adjust gdtoa(...,mode,...) to assume
"round near" when mode is 0 or 1.  Make various tweaks to banish
(useless) warnings from "gcc -Wall -Wextra".  Thanks to Jarkko
Hietaniemi <jhi@iki.fi> for advocating the latter exercise (and
correcting a typo in README).

20160307
  dtoa.c:  fix glitches with floating-point values in hexadecimal
notation:  some values that should overflow to (appropriately signed)
Infinity, such as 0x1p1025, were mishandled, and values greater than
0x1p-1075 and less than 0x1.0000000000001p-1075 where treated as zero
rather than the smallest denormal number.
  gdtoa.tgz:  fix a bug with hexadecimal input greater than the
smallest denormal and less than the smallest denormal times the
smallest number greater than one.  In round-to-nearest values, such
values should round to the smallest denormal rather than to zero.
Thanks to Albert Chan <albertmcchan@yahoo.com> for bug reports.

20160325
  dtoa.c:  fix a bug whereby dtoa(...,mode,...) with, e.g., mode = 2 or
3 could return a string with trailing zeros, contrary to specification.
An example provided by Albert Chan:  dtoa(81320560005., 2, 10,...).
  gdtoa.tgz: fix the analogous bug in gdtoa/dtoa.c and gdtoa/gdtoa.c
and apply the bug fix of 20151020 to gdtoa/dtoa.c.

20160429
  dtoa.c, gdtoa.tgz (file dtoa.c):  Fix a bug with dtoa mode 0 when
Honor_FLT_ROUNDS is defined:  with some inputs and nondefault rounding
modes (e.g., 1.23 with round toward zero), the returned string was off
by one.  When the new 64-bit integer logic is used, the test in
question is very unlikely to be used.  This is another bug reported by
Albert Chan.

20160505
  dtoa.c:  fix some glitches in strtod() when Honor_FLT_ROUNDS is
defined:  zero was returned for some decimal values that should have
been rounded to +- the smallest denormal, and +-Infinity was returned
for some hexadecimal strings with huge values that should have been
rounded to +- the largest finite value.

20160506
  gdtoa.tgz: analogous bug fixes to those of 20160505.

20180730
  strtodg.c in gdtoa.c:  fix a glitch, introduced 20160506, with some
return values of +-Infinity:  the STRTOG_Overflow bit was not set.
22 files changed