Fraction.parseFraction docs: Note trailing-zero regex optimization
Fraction: Implement parseFraction

// TODO: unit tests
Fraction.parseFraction: RM [ "_" ] from EBNF since we say we ignore '_'

In the paragraph under Format, we see that underscores in the input
string are ignored. No need to specify that redundantly.
Fr.pFr: Fix negative handling (actually use the negative flag)

Derp.
Fr.pFr: Remove regex comment since we've implemented pFr
Fr.pFr: Fix NPE for incomplete fractions
Fr.pFr: Fix error for overlarge decimals w/ trailing zeroes

This corrects the implementation back to intended behavior. I crafted
the regex to give me a group (DECIMAL_GROUP) that trims off leading and
trailing zeroes specifically for the procedure below. (The ultimate goal
is to accept as many different Fractions as possible, so I'm going out
of my way to accomodate this. Some [l]user might type 5.000000000000000
into a sweepstakes editor and complain when it doesn't work, since
rejecting that type of input is unintutive.)

I need to use match.group(DECIMAL_GROUP), which trims off leading and
trailing zeroes. That way,

21474.836470000

will be parsed as 2147483647/100000. In other words, we avoid trying to
convert 21474836470000 to an int (which is overlarge for an int and
causes the parser to choke, for good reason).
Fr.pFr: Use DECIMAL_GROUP for real this time
Fr.pFr: Treat an empty decimal-removed string as 0

This occurs for basically any 0 decimal, since the 0s (as
leading/trailing) are removed -> ".", and then the decimal(is)Removed ->
"".