redo lexing of float literals

Making it much simpler and slightly faster.

Shouldn't be any behavior changes.