Restructure the output attributes of *SearchCV

* `BaseSearchCV` now stores attribs `best_index_`, `grid_results_` and `fold_results_` from which `best_params_`, `best_score_` and `grid_scores_` are derived; and `best_estimator_`.
* `grid_results_` and `fold_results_` are structured arrays, allowing for flexible further computation.
* The contents of these are extensible. Currently they may store training scores and times as well as test scores, number of test samples, parameters for each grid point, etc.
* Multiple scores may be output, such as precision and recall as well as the F1 objective.
* Some refactoring and additional testing included.

An alternative to #1742