[backport] 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

Review by @larsrh