Split number parsing into another function.

NOTE: One of the whitespace munchers is probably redundant.