[SPARK-2359][MLlib] Correlations

Implementation for Pearson and Spearman's correlation.
R only supports 3 correlations and they happen to not have name collisions, which is fine because there was no plan to support more correlations in R on a single machine. But if there comes a popular correlation called "kuma", the way R can handle it is renaming it to some name like "zuma" or explaining to user why "ku" is required for "kuma" but "k" is for "kendall". That was a bad decision R's developers made.

The implementation in this PR suggests that developers can add their own implementation but the name resolution isn't really expandable. Besides kendall's tau, we might add approximate algorithms in the future, which could have name like "approx_spearman" and "approx_pearson". Then we are facing collisions in the first character or non-unique substring matching.

Also, we want to make the behavior consistent in MLlib. It adds burden to future development. The best solution to me is exact string matching, simple implementation and low maintenance cost.