Use rational version of GCD for GCD.
Add corrected floating-point GCDs.

This fixes the GCD for Float, Double, and BigDecimal.
Add more GCD tests.
GCD of float/double with 0 matches int/long.
Merge remote-tracking branch 'tixxit/bug/rational-gcd' into 2.10.0
Update and improve the readme a bit
Add simple arithmetic overloads, and some return type annotations.
Throw an ArithmeticException when Natural - Natural is illegal.

This mirrors how Haskell treats it, and also how division is treated.
We may want to consider ways of doing division and subtraction that
return an Option as well.

Fixes #113
Fix bug in fast-stop condition in selection.

An equal span was being found that was intended to speed up the case
where we have many equal elements. However, we weren't using the center,
but the left side, so if several equal elements were on the left, it
could cause a correctness issue.
Merge remote-tracking branch 'tixxit/bug/select-equal-span' into 2.10.0
Merge remote-tracking branch 'origin/2.10.0' into 2.10.0
Fix misnamed method in Generator (thanks to Ben Hutchison).

Fixes #116
Clean up exceptions and docs in Complex.
Small Natural refactor for clarity
Disallow Double's sentinel values in Number.
Implement better log() and exp() for BigDecimal.

This also improves the performance of pow() and fpow() for BigDecimal.
While this code is still not perfect I think it's totally acceptable
for now and very close to being good.

The big issue is that in some cases the last digit or two of something
like exp(3) will be wrong. This is due to accumulated rounding error,
and the only way I know how to "fix" it would be to pessimistically
track possible rounding error and restart with more precision if the
error looks like it could affect the result.
bump scala and sbt versions
remove commented code