[SPARK-2359][MLlib] Correlations

Implementation for Pearson and Spearman's correlation.
While I agree we definitely should anticipate cases for generalization, I feel ambivalent about generalizing based on fairly hypothetical use cases (especially since there hasn't been issues of name collision in well known correlation algorithms for many years in almost all major stats packages).
In any case, maybe fuzzy string matching isn't the optimal solution here, but the consideration was around user friendliness and the fact that the method name isn't something that gets checked at compile time (unless we find a mechanism to do so). Since Spark attracts users with its fault tolerance and user friendliness, it seems silly to me to have something fail at runtime (potentially after a lot of other data processing computation) because of an extra "s" in  "spearmans"(and both "spearman" and "spearmans" seem popular options). The Correlation interface idea sounds interesting, and I can see people who need things to be fault tolerant going the extra mile of implementing it (but of course by default we don't require it and use exact string matching instead). 
On the other hand, I understand that developers can only do so much to tolerate fault in user behaviors, and maintainability seems much more important in comparison. 
At any rate, if it comes down to exact string matching or no deal, I'll gladly go with exact string matching only.