MRG allow y to be a list in GridSearchCV, cross_val_score and train_test_split

Fixes #2508.

This makes input validation consistent across the three cross-validating functions and less intrusive.

I am not entirely sure this is the right thing to do, as it has some slight backward-incompatibilities. When ``X`` or ``y`` was given as a list to ``train_test_split``, it was converted to an array before, but is no longer. In the case of ``X`` this could be considered a bug-fix (for lists of strings). There is an off-chance that this breaks someone's code, though. ``GridSearchCV`` now passes ``y`` though as a list, without converting. I think that is fine and very unlikely to break anyone's code (as I think an estimator should handle exactly the same kind of input GridSearchCV gets).
Looking at this again, shouldn't you still need to call `safe_mask`? Or are we assured in all cases where `safe_indexing` is called that indexing is an integer array, not a boolean mask? I think, for instance, we are not assured this in `_safe_split` until the deprecation of cross validation generators' `indices=False` is complete.