Don't parse idents with leading 0s as numerics

The round-trip check in Version::parse will fail otherwise because the
`to_string()` implementation of a parsed number will strip all the leading 0s.
If an identifier starts with a leading 0 then parse it as an `AlphaNumeric` to
preserve the round-trip-ness of a parse.

Note that the current specification also states:

> Numeric identifiers MUST NOT include leading zeroes