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
I don't see why we're making this test expensive by choosing a CV with so many folds, or similarly, why we need to test again with `LeaveOneOut` over the full dataset.