Add support for non-decimal floating point literals.

Issue #1433. The syntax chosen was requiring an 0b, 0x, or 0o after the dot.
If the literal is hexadecimal, an exponent is required.

Tests seem to pass except 'make check' does not complete for me because of #12322