use an explicit random state for generators

I don't know how to actually test it (how ironic...). I've changed the type of random generators so that they take a `Random.State.t` as parameter (since both @gasche 's generators, and my own ones, have this type). More combinators should follow, if you accept this patch.