[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.
Is there a reason this change is tied in with this PR? I would very much prefer to limit the scope of the PR.