[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!

The predict method seems to be O(kN) but you can do assignment in O(Nlog k) time with the tree, right?  (N is the number of data points, k is the number of cluster centers).