make the seed of a MersenneTwister be always a Vector{Uint32}

MersenneTwister's constructor making an instance with an Uint32 seed
was removed in commit 4fb4622f5c. But a subsequent call to
srand(r::MersenneTwister, seed) would only accept an Uint32 as a seed,
and would always make r.seed an Uint32; this was not consistent.
add more methods srand(::MersenneTwister, ...)

The srand methods working on a MersenneTwister instance did not catch
up with those working on the global RNG. They are now made similar
thanks to the make_seed function, which implements the different
logics.
Also, the manual is more precise on the types of valid seeds.
add more methods rand(rng, ...)

And similarly for rand!, randbool.
Fixes #8360.
Merge pull request #8854 from JuliaLang/rf/rand-rng

RFC: more methods working with a non-global RNG