Pipeline execution cleanup; remove Pipeline.cleanup().

There were several messy paths through this, which basically relied on
the pipeline's caller to call cleanup() when done, or else an atexit
handler firing.  Running pipeline jobs via rejester in particular, there
were attempts to do the same cleanup work twice, and you could get error
messages because a rejester job failed, then the streamcorpus_pipeline
atexit handler ran and tried to terminate/retry the same job again.

Don't set an atexit handler; remove everyplace we call sys.exit();
and remove the explicit cleanup() function.  Move the cleanup into a
try/finally block in Pipeline.run().

The only other significant change is that, if a single Pipeline is run on
multiple input files, the cleanup tasks run on every execution instead
of once for the whole batch.  The only place this is likely to matter is
for a batch transform, that can accept a list of input files incrementally,
but can't accept individual stream items, in which case the external
program would get killed and restarted for every input file; but we don't
have any like that now and it's a little bit of an odd case.