[SPARK-2429] [MLlib] Hierarchical Implementation of KMeans

I want to add a divisive hierarchical clustering algorithm implementation to MLlib. I don't support distance metrics other Euclidean distance metric yet. It would be nice to support it at other issue.
Could you review it?

Thanks!

More trivia but here I think you're using `java.lang.Math` instead of `scala.math`. Both are just fine but I wonder if the latter is more standard in Scala code.