[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. 
Thanks for the pointer to PartitionwiseSampledRDD. I've actually looked a lot at it for the sampling PRs. There were two considerations for going with this more deterministic seed assignment per partition. One is that this is a lot easier to test to make sure that each partition has a different seed with this deterministic seed assignment, and the other is that we're guaranteed to have a unique seed per partition. Since most RNG implementations hash or otherwise scramble the bits in the input seed before setting it anyway, I think we can get away with the current implementation.