Get rid of the applicable call in rand(Range1)

Relying on multiple dispatch mechanism, we can get rid of the applicable call which is a performance killer for the function ``rand``. 

This version is about 16x - 20x faster than the original one.

This is the first step to address https://github.com/JuliaLang/julia/issues/3751.