Automatically derive instances of scalacheck's Shrink

Add a TypeClass instance for org.scalacheck.Shrink. Shrink is a useful feature of scalacheck whereby upon finding a failing example, scalacheck will shrink the example down to a "smaller" example.