[SPARK-2308][MLLIB] Add Mini-Batch KMeans Clustering method

Mini-batch is a version of KMeans that uses a randomly-sampled subset of the data points in each iteration instead of the full set of data points, improving performance (and in some cases, accuracy). The mini-batch version is compatible with the KMeans|| initialization algorithm currently implemented in MLlib.

This PR adds the KMeansMiniBatch clustering algorithm, tests, and updates docs.

Discussed in [SPARK-2308](https://issues.apache.org/jira/browse/SPARK-2308)