Specialize Semigroup, Monoid and (Ab)Group.
Add some initial Scala Map algebras.

This also adds some benchmarks to make sure our impl of the map
operators is no worse than Algebirds.
RingAlgebra is actually a Rng now.
Add type class instances for Map[K, V].

Adds type class instances for Map. This treats map like a sparse
product, so we can go all the way up to InnerProductSpace.
Add some monoid instances.
Add more collection monoids.
Add monoid for arrays.
Add "vector space" instances for collections.

This adds instances for various seq-like collections that are Modules,
VectorSpaces, and InnerProductSpaces. This let's us use + to do "vector"
addition, dot product, etc.
Add vector space instances for Arrays.

Adds Module, VectorSpace, and InnerProductSpace for Arrays.
Generalize collection instances.

This generalizes the collection instances to work for any collection
type that looks like `CC[A]` and has a `CanBuildFrom[CC[A], A, CC[A]]`.
Move SeqLike instances out to separate file.

I like having everything all in one place, especially since all the
different instances inherit from the more general ones.
Add L_p normed vector spaces for SeqLike.
Add nice getters for more type classes.

Adds an inline-able apply method to Module, (Normed)VectorSpace,
InnerProductSpace and MetricSpace.

Also adds a distance convenience method to MetricSpace's companion
object.
Move string instances over to separate file.

Moves String's Monoid (concatenation) over to its own file. Also adds a
default MetricSpace for Strings; the Levenshtein/edit distance.
Add LevenshteinDistance to MetricSpace.
Add tuple type class instance generator.

This adds a new command to sbt:

gen-product-types

This will write 2 files (spire/algebra/tuples.scala and
spire/math/tuples.scala) to the source directory. These contain
implementations of most type classes for tuple, as a simple product (ie.
(x, a) op (y, b) = (x op y, a op b)).
Use unique names for product constructors.

Accidently used apply everywhere for implicit constructors of tuple type
class instances. This now uses the actualy type class trait name
instead.
Add tuple type class instances.

Easiest 9k line commit I've ever done.
Remove spurious commented-out code.
Make vector space scalar type class available.

If a Module[V, R] is available, then it makes sense to also allow the
scalar's Ring[R] available implicitly.