Rebase + squash + fixup of #814.

I don't like this interface much.

What happens if both preprocessor and preprocessor_from are specified? Do both run? If so, which one first?

What if I have a preprocessor I want to run with can_fit=False, but it's not in a Dataset? Do I need to stick it in a dummy dataset just to use this interface? If I preprocess a dataset and want to re-use its preprocessor later, do I have to pickle the entire dataset just to keep the preprocessor?

This seems like it's solving a fairly general problem, why should the solution go in CIFAR10 rather than Dataset or DenseDesignMatrix?