First pass at computable real numbers.

This started off as a port from Haskell's CReal type. However, at
this point the projects have diverged a little bit (primarily due
to different rounding behaviors, different types, and some other
details).
add min/max to Rational
possible optimization for exact values
Merge remote-tracking branch 'origin/master' into topic/computable-reals
Computable reals are working.

This commit gets all the CR tests passing. It fixes some more issues
with Rational that were causing problems, and gets invariants like
x.nroot(k).pow(k)==x working reliably.
Merge remote-tracking branch 'origin/master' into topic/computable-reals

Conflicts:
	core/src/test/scala/spire/math/RationalCheck.scala

Fix merge conflict.
Implement CR#gcd, and fix EuclideanRing[CR]'s methods.
better type ascriptions
turns out 4 != 1/2. who knew?
Add tests for constants pi and e (at 200 digits).
a few more sanity tests for CR
Rename CR to CReal.