redo Lexer::number

Faster, shorter, and much simpler. For example, it no longer scans the string twice.