Add a whole bunch of Arbitrary instances for ScalaCheck.

This closes #252, although in the future we may want even more.
We may also want to create some types solely to help people who
are doing testing, for example:

  case class FiniteDouble(d: Double)
  case class ExactReal(r: Real)
  case class IrrationalReal(r: Real)

These might be annoying, but I have a feeling they would be nicer
than having to manually filter ScalaCheck instances and potentially
failing due to too many filtered cases.