Add parser for leading sign

This needs to happen before parsing for the exponent part: a number such
as "e10" is valid but "+" is not, and done this way around it is much
easier to trap the error.