(PUP-3602) Do not convert 0eN strings to floating point

This prevents strings that could be interpreted as 0 (any number of
of value digits or decimals) times 10 raised to some value to be
converted to floating point. Any such literal entry can be replaced by a
numeric value that is just 0 in source if indeed someone entered such a
strange constant as a string and expecting it to be a numeric 0.

The problem with allowing the conversion to take place is that strings
as produced by md5 fingerprinting typically starts with 0e thus making
all md5 fingerprints equal due to all being numerical 0.

This fix changes the conversion so that zero (in any form) followed by
eE and digits is not converted.
(PUP-3602) Make string to number not convert infinite values

Strings that can be converted to a floating point value that is infinite
should not be converted to floating point.

This also fixes the alternative code path when values are converted
and the radix is returned. (An odd code path for floating point
values)
(PUP-3602) Fix faulty spec it-titles
(PUP-3602) Break out common match to floating point logic

This breaks out the repeated sequence of converting a match
to a floating point value. The exact same sequence was performed
for both to_n, and to_n_with_radix.
Merge pull request #3263 from hlindberg/PUP-3602_do_not_convert_scientific_0e_strings_to_float

(PUP-3602) Do not convert 0eN strings to floating point