[WIP] Multiple-metric grid search

This PR brings multiple-metric grid search. This is important for finding the best-tuned estimator on a per metric basis *without* redoing the grid / randomized search from scratch for each metric. 

Highlights:
* No public API has been broken.
* Some parts are actually *simplified*.
* Updates `cross_val_score` so as to support lists as `scoring` parameter. In this case, a 2d array of shape `(n_scoring, n_folds)` is returned instead of a 1d array of shape `(n_folds,)`.
* Adds multiple metric support to `GridSearchCV` and `RandomizedSearchCV`.
* Introduces `_evaluate_scorers` for computing several scorers without recomputing the predictions every time.
* Fixes #2588 (regressors can now be used with metrics that require `need_threshold=True`.

Tagging this PR with the v0.15 milestone.
This is needed to evaluate several scorers without recomputing the predictions every time. With your design, the predictions get recomputed for every scorer. This is fine for linear models, not quite for kernel SVM or RF.