Merge pull request #325 from denisrosset/topic/group-laws

Topic/group laws
Merge commit '5572c1d910b8b7a5b75d49aa6b5bdcdaa39ca219' into topic/order-laws
Merge branch 'topic/order-laws'
Improve Gaussian[A] and add Exponential[A].

This commit hooks up the ziggurat algorithm we have for generating
fast normally-distributed Double values, making Gaussian[A] a lot
faster. It also introduces Exponential[A], which also uses the
ziggurat method (and only works for Float/Double currently).
Merge remote-tracking branch 'origin/master' into topic/dist-maker-updates
Bump Scala 2.11 version, SBT version, etc.

This commit upgrades the following versions:

 * Scala 2.11.2 -> 2.11.4
 * SBT 0.13.5 -> 0.13.7
 * ScalaTest 2.1.3 -> 2.2.1
 * ScalaCheck 1.11.3 -> 1.11.6
Merge pull request #328 from non/topic/version-updates

Bump Scala 2.11 version, SBT version, etc.
Merge remote-tracking branch 'origin/master' into topic/dist-maker-updates
Add convenience methods to Uniform, Gaussian, Exponential.

Previously you had to do:

    Uniform[Int].apply(1, 7)

...to dodge Uniform.apply's implicit parameter list.

This commit adds another apply method so you can just say:

    Uniform[Int](1, 7)
Merge pull request #327 from non/topic/dist-maker-updates

Improve Gaussian[A] and add Exponential[A].
Add missing Number implicits (fixes #329)
Merge pull request #330 from non/bug/add-number-implicits

Add missing Number implicits (fixes #329)
Fix Jet class cast exception
Add basic spire.math.Info[A] implementation.

This commit adds an Info type class that gives us some basic
information about a scalar type.

Currently this type class doesn't support exotic types like
complex, interval, jet, polynomial, etc. It's really just
about trying to handle range/precision issues in a general way.
Avoid synthesizing VectorSpaces from ClassTags unless necessary.

The code in Jet was importing all the array implicits. This meant
that an implicit ClassTag[A] gave you a VectorSpace[Array[T], T].
There were a couple of issues with this:

 1. Every simple operation on a Jet created these instances.
 2. Actual VectorSpace[Array[T], T] instances became ambiguous
 3. It wasn't clear why certain type classes were used (or not).

This commit stops importing the array instances, and fixes all the
methods that broke. Overall, this should be a more maintainable
strategy: we will require the instances we need, and ask for them
explicitly.

It's possible that a user of Jet will write code that synthesizes
many VectorSpace instances, but at consistently generic code should
not have to do so.
Fix similar synthesization issue with Eq[Array[T]].

This commit avoids synthesizing a type class instance every
time we want to check for equality.
Rename spire.math.Info to spire.math.NumberTag.
Merge pull request #332 from non/topic/scalar-info

Add basic spire.math.Info[A] implementation.
Merge pull request #333 from non/jetcast

Fix Jet casting problems, and other fixes.
Merge commit '9ad05248b2d6ca3c389c2ea08d128cec80360526'