adding new generator combinators: subsetOf, selectOneFrom, shuffled

I find these 3 combinators useful, see if there are good enough to be merged into this repo :)

* `subsetOf` generates a subset of the given list.
* `selectOneFrom` is an extension of `elements`: it not only returns the selected element, but also the rest of the choices. this would make sampling without replacement a little bit easier.
* `shuffled` returns a shuffled version of the given list. Additionally, `take n <$> shuffed xs` will then be randomly choosing up to `n` values from `xs` without replacement.