ENH: use setuptools for bdist_wheel command

Enable wheel building by importing setuptools.
DOC a note on shuffling for cross-validation
ENH shuffle option for StratifiedKFold
DOC shuffled StratifiedKFold now in whats_new
BUG: fix doctests
DOC: fix restructured text
FIX MemoryError raising in trees (+test)

I got this wrong all along: Cython functions that don't return Python
objects need an "except" clause to actually propagate exceptions (spotted
by @GaelVaroquaux, @arjoly).

Simplified memory management and unified error messages by safe_realloc.
DOC mention that train_test_split returns a random split
Merge pull request #3133 from kmike/patch-2

Mention that train_test_split returns a random split
Using the 'is' token compares identity; this should not be used for string value comparison.
Merge pull request #3134 from jrouly/string_values

Use == instead of is for string comparison in Affinity Propagation
MAINT remove redundant class hierarchy + fix api perform parameter check in fit
DOC fix example in univariate selection (fix issue #3132)
FIX testing datasets have too few feature for default of SelectKBest
TST improve parameter checking
TST use standard assert_ function
DOC remove comment thanks to @jnothman ('All our feature selectors output masks now (as they should, IMO). It will be turned back into indices only for sparse matrix indexing, but only until we require scipy >= 0.14 (?).')