number tests and error-reporting
 - leading zeroes
 - missing exponent
 - floating-point overflow

also factor and simplify number parser
finish off number error-reporting (hopefully); factor some more and test