More comprehensive float matching in lexer.

Now we accept 3.5e6 for example as a floating point number.
Exclude sign from FLOAT pattern.

Negation is handled in the grammar, until that is changed it should
not be (also) handled in the lexer. With this modification, the INT
and FLOAT patterns match nonnegative numbers only (again).