Reduce Rationals by their gcd's.

Store a private variable that maintains the value of the greatest
common divisor of the numerator and denominator. Divide both by
the gcd to obtain the Rational's most reduced value.

It's nice to note that the gcd method is tail recursive, I think
the Scala compiler can somehow optimize[1] this for us.

[1]: http://stackoverflow.com/questions/1677419/does-scala-support-tail-recursion-optimization
Add some vertical space to Raional's source.

It was starting to get just a little too crowded for my taste.
Rename Rational's add() method to +.
Add method * to Rational.