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.


Use a temp value to store the slice so it is not computed twice.  Also, I believe using ```samples.view.slice``` will be more efficient since it avoids creating an explicit copy of the data.