Use global random generator in IO
Use global random generator in IO

`setStdGen` lets you set the global random number generator. We can then
use `getStdRandom` to get a random number generator. This will
automatically set the global generator to the returned generator. Random
generation is then completely deterministic based on the initial seed.

I don't love the fact that it relies on global state, but passing around
the new generator everywhere was equally as annoying. I tried to figure
out a way to monadify all of this, but unless my understanding of monads
is fallacious, it's not possible.

See: https://hackage.haskell.org/package/random-1.1/docs/System-Random.html

semaj/hademlia