add Pipeline stop method and use it in tests
make starting a Pipeline idempotent
use cloudpickle

this makes pickling much more reliable in general and avoids
a lot of the hoop-jumping we had to do to make it work before