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.


By the way, ```det``` and ```pinv``` are factorizing the matrix twice.  It would be better to do one factorization (like SVD) and then compute the det and inv from it.  We can do that in a follow-up PR though.