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

This may be my Scala ignorance, but if the constructor params aren't private, don't you get setters for free? I see you're going for a fluent style, and that makes sense, but I don't know of the other conf-like or algo-like classes do this. Pretty minor and I could be wrong but consider whether it's worth the code and consistency issue.