Remove dependency on Specs2

Scalaz is an implementation dependendecy for Specs2. This makes it tricky to
use Specs2 to test Scalaz itself.

Historically, we have either:
 - used a older relesae of specs2 (hoping it was binary compatible
   with the new Scala release)
 - failing that, published an untested scalaz-core and waited
   for Specs2.

This seems a dangerous state of affairs, and one that is most simple resolved
by using a different test framework.

This commit does exactly that, using Scalacheck with a small facade to retain
a measure of source compatibility with our existing tests.

 - Adds SpecLite, a replacement for Specs
  - This contains a facade over Scalacheck to minimize
    the amount of changes we need to make to test sources.
- Converts test cases to use this