remove Trig[A]'s requirement on Fractional[A]
More progress on pluggable PRNG API.

At this point, other than hardcoded functions like nextInt, Generator
provides a next[A] method, using the Next[A] type class to allow
pluggable generation of A.

The basic idea is that users can provide Next[A] implementations that
given a Generator instance can return an A instance. In practice this
looks something like:

  import spire.math._
  import spire.random._

  // set up a Generator instance
  val rng: Generator = WellPrng()

  // identical to g.nextDouble, using Next[Double]
  val d: Double = rng.next[Double]

  // produces Next[Complex[Double]] given Next[Double]
  // resulting complex numbers have real and imaginary
  // parts in [0.0, 1.0).
  val c: Complex[Double] = rng.next[Complex[Double]]

  // sets up an implicit Next[BigInt] instance which
  // will generate BigInts using 64 random bytes.
  implicit val nextBigInt = Next.bigint(64)

  val b: BigInt = rng.next[BigInt]