Make the build aware of Scala 2.11 modularization
Avoid inferring by-name type argument to function1Covariant

This is (in general) unsound as shown in SI-7899 and no longer
supported in Scala 2.11.

See https://issues.scala-lang.org/browse/SI-7899

This change should be binary compatible as it just introduces a new
method, so we could/should backport to 7.0.x.
bump scalacheck version
Avoid SBT's "Not a simple type" warning during API extraction.

    [warn] Not a simple type:
    [warn]  Type: scalaz.Unapply[scalaz.Applicative,List[Int]]{type M[X] = List[X]; type A = Int} (class scala.reflect.internal.Types$RefinedType0)
    [warn]  Transformed: class xsbti.api.Structure
    [warn] Not a simple type:
    [warn]  Type: scalaz.Unapply[scalaz.Applicative,List[Int]]{type M[X] = List[X]; type A = Int} (class scala.reflect.internal.Types$RefinedType0)
    [warn]  Transformed: class xsbti.api.Structure

SBT spits out this warnings in 0.13.0 for the members `f` and `g`
of `FunctTest`. Moving them local, rather than members,
avoids this problem.

I think this problem is fixed in SBT 0.13.1 with:

  https://github.com/sbt/sbt/issues/559
Merge pull request #562 from retronym/topic/scala-modules-and-by-name

Scala 2.11 compatibility
avoid new object allocation