GHC supports various numeric literals such as decimal, octal, hexadecimal,
binary, and floating point numbers. However, large numeric literals are
hard to read. This proposal improves the readability, quality,
expressiveness of numeric literals.

This proposal allows underscores to numeric literals when the
`NumericUnderscores` language extension is enabled.
Underscores (`_`) in numeric literals are simply ignored.

* Alex "Rules" in Lexer.x
* To be simpler, we have only the definitions with underscores.
And then we have a separate function (`tok_integral` and `tok_frac`)
that validates the literals.

* Validation functions in Lexer.x
* `tok_integral` and `tok_frac` functions validate
whether contain underscores or not.
If `NumericUnderscores` extensions are not enabled,
check that there are no underscores.
* `tok_frac` function is created by merging `strtoken` and
`init_strtoken`.
* `init_strtoken` is deleted. Because it is no longer used.