FIX #2645: fix 20 newsgroups downloader under Python 3
ENH/FIX Change Tree underlying data structure

* avoid segfault (#2726) by setting base on numpy arrays
* A struct array for tree nodes and values array (size indeterminate at
compile time) are the only underlying structure, so each node is locally
grouped memory, and joblib dumps will save only two numpy files per
tree.
* predict() uses the value array's take method, reducing code repetition
Refactor cv code
Clean up
Refactor RFE and add _check_scorable
FIX typo in docstring
Merge `fit_grid_point` into `_cross_val_score`
Return time
Move set_params back to fit_grid_point
Log score and time in 'cross_val_score'
check_scorable returns scorer
Clean up
Replace '_fit_estimator' by '_cross_val_score'
Fix PEP8, style and documentation
Remove wrong variable names
Remove helper function '_fit'
Remove 'fit_grid_point' from 'BaseSearchCV'
Check substrings of error messages
Rename '_split' to '_split_with_kernel'
_passthrough_scorer is a function