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 couldn't find a more elegant way to have numpy figure out the right type for preds if there is no ``y``. I'd really like to know how to do something like:

    preds = np.zeros(len(X), dtype=...)

but I don't know how to precompute this type.