An interface to monads with splittable state (as most random number generation monads will have).
The intention is that the getSplit action splits the state, returning one half of the result, and
setting the new state to the other.