3699: add arv-copy

* arvados.config.load(config_file) reads config_file for Arvados
  configuration settings.  It returns a hash with the Arvados config
  vars and values.

* arv-copy can authenticate to multiple Arvados instances.
3699: support pipeline templates

arv-copy can work on pipeline templates.
3699: arv-copy supports collections

arv-copy can be passed a collection UUID. copy_collection(uuid) copies
each block in the collection from the source Arvados to the destination,
copies the manifest and then writes a collection record.
3699: added copy_pipeline_instance

Added copy_pipeline_instance, integrating copy_collection and
copy_pipeline_template.  Added comments.
3699: copy docker images

A Docker image dependency is specified, for each component c in
pipeline_instance['components'], as c['job']['docker_image_locator'].
This field is a collection hash for a collection that holds a Docker
image file.

copy_pipeline_instance copies the collections found in these fields as
well as the input collection dependencies found in c['job']['dependencies'].
3699: add arv-copy to list of installed scripts
3699: accept collection hash as uuid
3699: bug fixes
3699: test storing the empty collection (edge case)
3699: skip components which have not yet run
3699: define copy_git_repo
3699: fix bugs
3699: add copy_git_repo step to copy_pipeline_instance
3699: typo fix
3699: rename repositories in copied pipeline instance
3699: add support for --recursive and --project_uuid
3699: bug fixes and feedback

* added 'arv copy' front end to sdk/cli/bin/arv
* can supply --recursive for pipeline templates as well as pipeline
  instance
* collections and git repositories are now properly renamed in the
  pipeline template and instance when copying recursively
* copy_collection skips copying blocks if the collection already exists
  at the destination
3699: bug fixes
3699: fix copy_git_repo

Need to specify destination branch explicitly when pushing.
3699: use a consistent destination branch for copy_git_repo

copy_git_repo copies commits from the source repository to a branch in
the destination named for the source repository URL. Thus, if the same
source repository is copied several times to the same destination, it
will not add redundant branches.