Fraction.parseFraction regex: Allow unlimited initial 0s in all numbers

I limit numbers to 10 digits because that is the max length of a valid
Java int. However, this change (adding 0* before all numbers) ensures
that any initial 0s don't affect this count.
Fraction.parseFraction: Update regex

- Allow infinite trailing zeroes in decimals
- Make leading/trailing zeroes also add underscores
- Add a capture for the decimal with zeroes on each end trimmed
Fraction.parseFraction: Treat underscores more liberally
Fraction.parseFraction docs: Clarify that number/denom... must be >0

Negation is handled by the fraction production, so we shouldn't have any
literals counteracting our logic.
Fraction.parseFraction docs: Correct EBNF error {"-"}->["-"]

Only one hyphen is allowed.