OneOf Generator

This was a little bit tricky to keep stateless because when you want to shrink to an earlier generator here we have to determine which is the generator used to get the current element you want to shrink

I think this could work, but check it out :heart: 
I have read some code from `test.check` to understand how it works. I still have some doubts and tomorrow we should read it more deeply. The idea is that the doc string can be misunderstood. We should print the rose tree to see how it shrinks.

From the _Scala Check_ book I read:
```
Gen.oneOf takes two or more generators and returns a new generator that
randomly picks one of the given generators to use when it is evaluated. You
can also give Gen.oneOf plain values.
```
So it seems that it chooses randomly a generator from the ones given as parameter and then it uses that generator also for the shrink. In this case it becomes really simple and we can delegate to our simple value generators.