[MRG+1] 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).