Fix parsing of optional sign in float number exponents

Signs were not being accepted as valid input in the exponents of
floating point numbers. This commit fixes that, and also adds a test
case that covers parsing of floating point numbers.