Fix issue #79

As expected, using asInstanceOf is not a good idea.
When using Gen.oneOf, the suchThat method of a generator
can be fed a value of another type. This causes a
ClassCastException since the internal sieveCopy uses
asInstanceOf to get around covariance breakage. I've
fixed this by catching the ClassCastException in sieveCopy
and returning false. This is the correct thing to do in the
current implementation, but it would be nicer to work with
the type system instead.