[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

Cherry-picked from 55240f79407e3721b7407a972efccc8c8d3a231b

Conflicts:
	project/build.scala
	tests/src/test/scala/scalaz/AlignTest.scala
	tests/src/test/scala/scalaz/ApplyTest.scala
	tests/src/test/scala/scalaz/BooleanSyntaxTest.scala
	tests/src/test/scala/scalaz/BooleanTest.scala
	tests/src/test/scala/scalaz/CodensityTest.scala
	tests/src/test/scala/scalaz/CompositionTest.scala
	tests/src/test/scala/scalaz/CoproductTest.scala
	tests/src/test/scala/scalaz/DigitTest.scala
	tests/src/test/scala/scalaz/EndomorphicTest.scala
	tests/src/test/scala/scalaz/EphemeralStreamTest.scala
	tests/src/test/scala/scalaz/Foldable1Test.scala
	tests/src/test/scala/scalaz/FoldableTest.scala
	tests/src/test/scala/scalaz/ImmutableArrayTest.scala
	tests/src/test/scala/scalaz/InjectTest.scala
	tests/src/test/scala/scalaz/InvariantFunctorTest.scala
	tests/src/test/scala/scalaz/KleisliTest.scala
	tests/src/test/scala/scalaz/MapTest.scala
	tests/src/test/scala/scalaz/MonadPlusTest.scala
	tests/src/test/scala/scalaz/MonadTransTest.scala
	tests/src/test/scala/scalaz/MonoidTest.scala
	tests/src/test/scala/scalaz/OptionalTest.scala
	tests/src/test/scala/scalaz/OrderTest.scala
	tests/src/test/scala/scalaz/PLensTest.scala
	tests/src/test/scala/scalaz/ProductTest.scala
	tests/src/test/scala/scalaz/RopeTest.scala
	tests/src/test/scala/scalaz/Spec.scala
	tests/src/test/scala/scalaz/StateTTest.scala
	tests/src/test/scala/scalaz/TheseTest.scala
	tests/src/test/scala/scalaz/TraverseTest.scala
	tests/src/test/scala/scalaz/UnwriterTTest.scala
	tests/src/test/scala/scalaz/ValidationTest.scala
	tests/src/test/scala/scalaz/ZipperTest.scala
	tests/src/test/scala/scalaz/concurrent/ActorTest.scala
	tests/src/test/scala/scalaz/concurrent/MVarTest.scala
	tests/src/test/scala/scalaz/concurrent/TaskTest.scala
	tests/src/test/scala/scalaz/concurrent/TimerTest.scala
	tests/src/test/scala/scalaz/effect/IOTest.scala
	tests/src/test/scala/scalaz/iteratee/EnumeratorTTest.scala
	tests/src/test/scala/scalaz/std/FutureTest.scala
	tests/src/test/scala/scalaz/std/IterableTest.scala
	tests/src/test/scala/scalaz/std/LensTest.scala
	tests/src/test/scala/scalaz/std/ListTest.scala
	tests/src/test/scala/scalaz/std/MapTest.scala
	tests/src/test/scala/scalaz/std/PartialFunctionTest.scala
	tests/src/test/scala/scalaz/std/java/EnumTest.scala
	tests/src/test/scala/scalaz/typelevel/CompositionTest.scala