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: 
No, because we have a guard in the caller (`shrink` method) but I don't like to leave a local method with an incomplete branch, I prefer to throw an exception, in this case we have an exception that suit the purpose.