Improve Interval[A].

This commit adds some new operators: ~ and --.

~x returns a list of intervals which comprise the complement of x.

x -- y returns a list of intervals which are in x but not y.

The commit also fixes a subtle interval bug with intersection.

This commit fixes a small bug with intersection, and
moves all tests into a "tests" submodule
Add Interval.apply method to parse strings, tests, etc.

This commit allows users to specify an Interval[Rational] via a string.
It adds some tests for as well as -- which caught a bug.
CRig[Boolean] is commutative
forgot to commit new CRig[A] type
Add MersenneTwister 32 and 64-bit PRNG implementations
Add MersenneTwister32 and MersenneTwister64 to GeneratorTest
Merge pull request #188 from dusank/topic/MersenneTwister

Add MersenneTwister 32 and 64-bit PRNG implementations
Clean up 2 redundant NOP expressions
update dependencies
Merge pull request #190 from larsrh/topic/deps

update dependencies
Align scala-reflect version with Scala version in the project.

This way spire build supports cross-versioning against multiple versions of
Scala properly.
Add dependency on macro paradise only when Scala 2.10 is used

Spire uses macro paradise plugin just for quasiquotes. Quasiquotes got
merged into Scal reflection in Scala 2.11 so there's no need to depend on
the macro paradise plugin in case Scala 2.11 is used.

This commit makes inclusion of the plugin conditional on the Scala version
used in the build.
Get rid of reference to ambiguously imported `sqrt`.

In Complex.scala, the `sqrt` identifier is brought to scope by two
different means:

  * the `math` package object declared `sqrt` def
  * it's imported explicitly from java.lang.Math.sqrt

Scala 2.11 started to (properly) flag this ambiguity so we need to resolve
it explicitly.
Add Scala reflection source compatibility hack.

Scala reflection has been heavily refactored in Scala 2.11 but a source
compatibility hack has been introduced. We make use of it in spire's
macros.
Remove some 2.11 warnings in a 2.10 compatible way.
update macro-paradise dependency
Upgrade sbt plugins to latest versions.

Unidoc 0.3.0 has changed the way you configure excluded projects so we
updated the build configuration.

The outdated versions of plugins depended on outdated version of dispatch
library and that was causing problems when plugging spire into Scala
community build.
Remove unnecessary Caliper-related boilerplate from Build.scala.
Fix Interval#pow as well as Polynomial#apply

Interval#pow should never return a negative bound when called with
an even exponent. Polynomial required some changes to get around
the assumpion that (x * x) == x.pow(2), which is obviously not
true for intervals.

Fixes #241.