use AbstractRNG instead of MersenneTwister when possible

Chanded methods: rand(rng, ::AbstractArray), randn, randexp, randbool
and their mutating counterparts.
Merge pull request #9274 from JuliaLang/rf/use-AbstractRNG

use AbstractRNG instead of MersenneTwister when possible