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
These duplicate _cached_fit and non-cached versions are not necessary, when `memory = Memory(None)` which will be feasible once you change the parametrisation of the implementation as above.