Remove extractUnit and related functionality

Originally, I intended for the unit of a fraction to be represented as a
separate int. Now, I realize that just using an improper Fraction is
much easier. Thus, Fraction is now essentially immutable (although
canonicalization and invalidation by a denominator of 0 can still
occur).
Add mixed-number Fraction constructor
Add Fraction copy constructor

You could also do add(0), multiply(1), etc. but this is clearer to
client code.
Add at-throws ArithExc to Fraction.Fraction(int, int, int) Javadoc