Add explicit suchThat to Gen.conatainerOf combinators.

This also restricts Gen.containerOf to only handle
types that are implicitly convertible to Traversable.
This is required in order to be able to inspect
simplified containers.