[r10k] Add r10k/logging to global requires

It's used often enough and has a sufficiently low enough footprint to
make sense to require it everywhere, to cut down on duplication.
[environment] Extract git environment type
[source] Extract git environment source class
[deployment/source] Simplify normalization of config keys
[deployment/source] Remove unusable prefix argument

Source#vivify supported an optional prefix argument, but this was not
exposed to the user in any way and was not really used in the API. This
commit removes the optional argument for simplicity.
[keyed_factory] Implement keyed object factory
[instance_cache] Rename Registry to InstanceCache

The so called 'Registry' was really just an instance memoization
container, which is better described as an InstanceCache. This commit
does the necessary renaming.
[source] Add keyed factory for source implementations
[deployment] Allow sources to specify a type
[deployment] Update references to renamed classes
[deployment/environment] (maint) Update tests and fix prefixing
[environment] (GH-118) Give environments locally unique names

This commit gives environments names that are unique to their sources.
This allows operations to be performed on specific environments across
all sources or update a single environment within a source, within a
specific source.
Merge branch 'feature/master/gh-118-named-environments' into feature/master/gh-116-alternate-source-implementations
[source/git] (GH-117) Restore branch name correction

This commit re-adds automatic branch name normalization. The
functionality has been moved from the environment to the environment
source, since the source itself determines quite a bit about how
environments are named and if they're created at all.
[source/git] (GH-117) Define option for branch name behavior

This adds a single option to control how branch names are treated when
creating environments. It will simplify how information will be passed
from configuration files to the source itself.
[source/git] (GH-117) Control behavior on invalid branches

Users may want to specify what should happen when a git branch has
characters that are invalid environment names. This commit adds a new
option on git sources, `settings`, which can specify a key 'invalid' and
values 'correct_and_warn', 'correct', and 'error'.

  * correct_and_warn: Replace invalid characters and emit a warning * (default)
  * correct: Replace invalid characters and don't emit a warning
  * error: Ignore environments with invalid characters and emit an error
Merge branch 'feature/master/gh-117-invalid-branch-behavior' into feature/master/gh-116-alternate-source-implementations
[environment/svn] (GH-104) Initial implementation
[svn/remote] (GH-104) Add remote svn branch enumeration
[svn/working_dir] Remove unneeded inclusion of R10K::Execution