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.


scala style: For multi-line map() calls, use braces:
```
    val data = ctx.textFile(inputFile).map { line =>
        Vectors.dense(line.trim.split(' ').map(_.toDouble))
      }.cache()
```
This occurs in several other places in this PR.  Could you please fix those too?