Rebase + squash + fixup of #814.

if self.toronto_prepro and which_set != "test" this does nothing. To keep the old behavior it should install a preprocessor fit to the train set. At the very least this should raise NotImplementedError or something.