added dvcs.repository, .set_git_configs functions; added to cmds

The new functions set various REPO/.git/config variables that
are used in all collections.
dvcs.set_annex_description(), storage.drive_label()

Git-annex can track a repository's remotes as the various repos
are updated and synced with each other.  Info on the existence
of remotes is available through git-annex-status in the form
of a UUID and a nice human-readable description, if the annex
was git-annex-described.

dvcs.set_annex_description()
Sets a repository's annex description if it has not already been
set (unless forced).
If no description is provided, one is generated based on
- drive label (for removable devices),
- hostname if different from the partner VM default, or
- hostname plus domain name from git-config user.email.
The function was added to certain DDR commands:
- create
- clone
- sync
- annex_status

storage.drive_label()
Returns drive label for a path if path is on a removable device.
fixed a couple set_annex_description() bugs

- Removed user_mail args which are no longer used.
- Added function call to DDR.commands.create.
- The function call in DDR.commands.sync was causing a merge
  conflict in the UUID.log file in the git-annex branch.
  Moving the function call to after the git-checkout master
  seems to fix this(?).