Set data_dir in pipeline.

In Seesaw, while all fetch items have their own scratch directories,
those scratch directories all share a common non-/ parent.  That's fine.
However, prior to this commit, that scratch directory was only
accessible when you had access to an item.

This can make life awkward in some cases.  The motivating example is
Archive Team's ArchiveBot[1], which will have a background task that
periodically reports on memory and disk space usage.  It's difficult to
get the latter unless it's visible at pipeline scope.  (The alternative
is to install one reporting task per item, but that shouldn't be
necessary -- there's one pipeline and one scratch directory.)

This commit moves the common scratch directory up to the pipeline, where
it can be more easily accessed.

[1] https://github.com/ArchiveTeam/ArchiveBot
Merge pull request #46 from yipdw/development

Set the common part of an item's data_dir in the pipeline
Uses better unique id generation scheme (ArchiveTeam/seesaw-kit#45).