[SPARK-2514] [mllib] Random RDD generator

Utilities for generating random RDDs.

RandomRDD and RandomVectorRDD are created instead of using `sc.parallelize(range:Range)` because `Range` objects in Scala can only have `size <= Int.MaxValue`. 

The object `RandomRDDGenerators` can be transformed into a generator class to reduce the number of auxiliary methods for optional arguments. 
It feels more secure if people see the following lines in the same group.

~~~
val thisGenerator = generator.copy()
thisGenerator.setSeed(seed)
iter.fill(...)(thisGenerator.nextValue())
~~~

If there are only

~~~
generator.setSeed(seed)
iter.fill(...)(generator.nextValue())
~~~

people would wonder whether there are concurrency issues.