Variates: generators should be in ST not IO
Variates: better types for runif

runif is for any Bounded e, runif' takes explicit bounds.
Sample: sampling in ST not IO
Merge branches 'sample-types' and 'variates-types'