Allow per-instance specification of the repo_dir for CatPipe.

This allows the creation of CatPipes that refer to repositories other
than the default, which in turn allows copying between repositories,
etc.

Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Allow the specification of a repo_dir to various VFS and git operations.

Previously, these VFS and git operations would only operate on the
default repository (git.repo()).  Note that these changes may not be
comprehensive, but they should at least change the bits needed by "bup
get".

Have vfs.cp() handle more than one repository (via an internal cache).

Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Add bup get; see the documentation for further information.

WARNING: this is preliminary, don't trust it yet.

Thanks to Karl Kiniger <karl.kiniger@med.ge.com> for helping track
down various bugs.

Signed-off-by: Rob Browning <rlb@defaultvalue.org>