SPARK-4156 [MLLIB] EM algorithm for GMMs

Implementation of Expectation-Maximization for Gaussian Mixture Models.

This is my maiden contribution to Apache Spark, so I apologize now if I have done anything incorrectly; having said that, this work is my own, and I offer it to the project under the project's open source license.


If people try this on a big dataset, it will crash when collect is called.  It might be good to do: ```clusterLabels.take(100).collect()``` (which will take <= 100 instances) (and to change the println above accordingly).