break out buffer benchmarks
add stanza for increasing benchmark memory
Shore up type class definitions and members.

There are two somewhat conflated purposes in this commit.
The first is to add support for Byte and Short to Eq,
Order and Ring. The second is to try to reduce the
number of methods that a typeclass instance must implement.

After doing some testing to confirm that overriding
methods in traits doesn't cost us anything, we can go
ahead and create "minimal" definitions of things like
times in Ring[A] in terms of plus.
Remove sign(um) and abs from Ring, add new Signed type class.

Adds a new Signed[A] type class for working with signs. Numeric,
Fractional, Integral all extend it, but Ring, EuclideanRing, and Field
do not. Also adds tests, which found a bug in Real (commit fixes this
bug).
Fix previous commit.
Updated Build file.
Merge pull request #15 from soc/sbt-up

Updated Build file.
Merge remote-tracking branch 'origin/master'
Add examples subproject.
Merge remote-tracking branch 'tixxit/master'
added log, exp and pow for BigDecimal
Continue to flesh out boxed number types.

Exponentiation is now supported to the degree possible. Added
some more tests and some different ways to construct Numbers.

Next steps are:

 1. Fleshing out available operators/methods.
 2. Add appropriate type class instances
 3. Consider Long/BigInt/Double/BigDecimal interactions
 4. Profiling
Move abstract algebra type classes to spire.algebra package.

This adds a new package spire.algebra for the abstract algebra type
classes. This split is to let spire.math focus on being a
straightforward numerics package, while letting us add more abstract
algebra types without worrying about clutter or confusing new comers.
Move tests to proper package.
Removes Eq trait from Ring. Add Group type class.

Ring shouldn't extend Eq, as was illustrated by the 'endoring' example.
This removes Eq from Ring (and EuclideanRing and Field). It also adds a
new Group type class that adds an inverse to Monoid. Ring[A].additive
now returns a Group instead of a Monoid.
Add nroot to Numeric and Fractional (extends NRoot).

This adds the nroot and sqrt operations to Numeric and Fractional. It
also gets rid of NumericWithNRoot and FractionalWithNRoot.
Make AdditiveGroup extend Group like it should.
clean up a little bit of spire.algebra, add some tests
Fix Field.isWhole, and rename eq to eqv.

Turns out there was a subtle bug in Field--we were calling eq()
even though Field[A] no longer extends Eq[A]. This wasn't caught
as a bug because AnyRef.eq was stepping in.

So, I have done s/eq/eqv/ to refactor eq,neq,lteq and gteq.
I also removed the Field.isWhole implementation (which I couldn't
see how to do without Eq) and implemented it manually in the
type class instances.
fix ComplexIsNumeric's nroot and compare