ENH Add cross_val_predict function

This function returns the cross-validated prediction for each element in
the input data (i.e., the prediction that is made when that object is in
the test set).

This is a loop that I keep writing over and over again, so I feel it should
be part of scikit-learn. Additionally, this uses joblib to take advantage of
multiple CPUs
Firstly, I think an example like that would be a neat addition to the gallery.

Secondly that assumes that elements are included in exactly one test set (i.e. they constitute a partition of the dataset), not at most one.

Thirdly, even in your use case, there can be values of `y` corresponding to multiple `p` from estimators with different training folds. As long as `y` and `p` can be mapped to each other, does it matter whether the test folds are a complete partition? Ultimately, though, I'm a bit ambivalent about this and like the interface of what you've currently implemented, which will suit many cross-validation regimes.

Fourthly, I'm sure other use-cases will be found!