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
More polynomial testing, plus a bug fix.
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.
improve the fib benchmark a little bit
fix bug with floor
Slight improvement to binary search.

This commit replaces two comparison operators with a single call
to compare. It seems to have no impact on "fast" Order instances
(like Int) but will probably help instances that define less-than
and greater-than via a (potentially slow) compare call.
update to ScalaTest 2.0
migrate to typelevel discipline
Fix some bugs uncovered by new ScalaCheck/ScalaTest versions.

The bugs cropped up in ULong, Rational, and FixedPoint. Almost all of
them have to do with correctly handling Long overflow/truncation.
It seems like ScalaCheck is being more thorough here than before which
is why we're just seeing these failures.
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.
Add documentation for CReal, etc.