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
The use cases are things like:

    p = cross_val_predict(X, y)
    plt.scatter(y, p) # Visualize fit
    print("R2: {}".format(r2_score(y, p))

So, it means that the output should be in the same form as ``y``