refactor MersenneTwister's low level API
make the Float64 interval a type parameter of rand
implement faster rand!{T<:IntTypes}(::MersenneTwister, ::Array{T})
implement faster rand!{T<:Union(Float16,Float32)}(::MersenneTwister, ::Array{T})
add rand! tests
Merge pull request #8958 from JuliaLang/rf/rand-fast-array

faster rand!(::MersenneTwister, ::Array{T}) for IntTypes and Float16/32