Obsessively check the denominator of a Fraction

Finalizer exploits and unsafe reflection operations could lead a
Fraction to have a denominator of 0. I added the checkDenominator
methods to ensure that errors caused by this do not propagate and are
obliterated as soon as possible.
Disallow Fraction.reciprocal() if Fraction represents zero quantity
Add Javadoc note about marking as invalid