Make AdditiveGroup extend Group like it should.
Merge remote-tracking branch 'upstream/master' into conversions

Conflicts:
	src/main/scala/spire/algebra/Group.scala
simplified pow for boxed numbers
Merge remote-tracking branch 'upstream/master' into conversions
Fix bug causing low priority Signed to return -1 instead of 0.
Add missing ConvertableTo implicits.
get rid of anonymous classes
remove private val
reenable Complex[A]#hashCode override
reenable complex test and update comments
make Signed[A]#signum abstract
Add finite field example.

Adds an example that uses Shapeless's Nat type for type-level primality
testing to provide type safe division for finite fields.
Forgot modified build.
Add log and fpow to NRoot[A].

This change finally gives us the ability to implement complex numbers without
having to manually convert to Double for some operations.

NOTE: Conversions to double still happen (i.e. in the implementation of log and
exp) but in a controlled way. Also, some implementations still need to be
written.
Add sbt script.
ignore .lib
add NRoot[Rational]#fpow and NRoot[Complex[A]]#nroot
Improve Complex[A]#abs and pow(BigDecimal, BigDecimal)
General refactoring.

In particular, this commit:

 1. Minimizes use of scala.math in favor of java.lang.Math
 2. Minimizes Spire's internal use of its own implicits
 3. Tries to make the spire.math.fun object a bit more consistent
 4. Separates out benchmarks, remove boilerplate
 5. Try to reduce benchmark memory usage
Forbid zero denominators in Rational#build.