SPARK-4749: Allow initializing KMeans clusters using a seed

This implements the functionality for SPARK-4749 and provides units tests in Scala and PySpark 
In doc: Maybe say "random seed value" instead of "seed value" since I could imagine people mistaking "seed" to mean "initial cluster center" at first glance.