Fix silhouette score n_labels

Fix such that silhouette score raises error
when n_labels is incorrect
Added number of labels for debug and regexp in test
Added _LearntSelectorMixin in BaseGradientBoosting
add datarobot testimonial

use png -- thanks @larsmans
Merge pull request #2973 from pprett/datarobot-testimonial

add datarobot testimonial
DOC/MAINT: clarify cblas/README.txt
Added extra check to feature importances
Merge pull request #2966 from maheshakya/feature_selector

[MRG] Added _LearntSelectorMixin in BaseGradientBoosting
DOC clarify Imputer constructor: arbitrary strings not accepted
Merge pull request #2959 from Oscarlsson/silhouette_score_label_number

[MRG+1] Silhouette score crashed if wrong number of labels
FIX: np.abs might not work on scipy.sparse matrices

On current scipy master np.abs(X) triggers:

    TypeError: __numpy_ufunc__ not implemented for this type.

I don't know if this is really a bug in scipy or not but in the mean
we can workaround this limitation as this is only for a test anyway.
DOC Remove redundant parameter docs
MAINT remove deprecated functionality from SGD
ENH use threads instead of multiprocessing in SGD
Clean tree builder interface
ENH inline sme function
ENH avoid serializing the splitter & criterion + avoid storing tree parameter in the tree structure
ENH avoid serialising the random_state in the tree
ENH clean public tree strucure
ENH for the tree structure max_depth is part of the inner structure