By making this consistent with the other numeric data type classes we can simplify cases where we are dealing with variants containing these types.
This fixes an issue where we'd serialize some floating point numbers with excessive precision, resulting in unpleasant-looking numbers like 0.49999999999999999 and such. At least 90 new subtests passing on WPT, possibly more. :^)
We're required to serialize NaN, infinity, and -infinity as their keyword names, even after they've been converted to Numbers.