ENH add joblib caching to Pipeline

Hello,

I recently added optional Joblib caching to Pipeline to avoid redundant computations / save the outputs for a personal project. I found this useful, and so figured I'd offer it up as a pull request. It passes `make test`, pep8, and pyflakes, but I'm new to open source and trying to learn (fresh out of college...), so feel free to tell me this needs more tests, is a bad idea, should change stylistically, etc.

Also, I read the contributing page, but apologies if I'm nonetheless following this process improperly.

-Dave
I originally did this but found that it got broken by GridSearchCV's cloning of the Pipeline object--hence the pre-defined cached and non-cached functions below. I'll revisit this though.