Test git gem reference preference order
Refresh git gem cache when it already exists

This avoids git errors.
Test reference support or git gem sources
Add DependencyResolver::GitSpecification
Implement Gem::Source::Git equality
Implement updating an already cached git gem

Source::Git#cache already behaves correctly if the repo dir exists so
there is no need to check for it.
Implement DependencyResolver::GitSet#find_all
git_gem returns four objects, not three.
Hook git gems into RequestSet

Now git gems can be installed.  Full bundler mode is not complete, but I
was able to install a git gem from a gem.deps.rb.
Support github gems in gem.deps.rb files
Implement gem.deps.rb git block support
Add documentation to Source#fetch_spec

Fix argument name for fetch_spec
Add Source::Git#load_spec

This loads the spec without creating a checkout in case resolution fails
and the gem cannot be used, there is a version mismatch, etc.
Implement prefetching from GitSet

This does not yet implement filtering
Add Gem::DependencyResolver::RequirementList#each

This will allow filtering during prefetching of git specs from a git
set.
Implement filtering for prefetched specs
Integrate GitSet#prefetch with find_all
Rename Gem::DependencyResolver to Gem::Resolver

This makes for less typing and easier tab completion
Rename Gem::Resolver::DependencyConflict to Conflict

This makes it easier to type.
Remove redundant require

Gem::Resolver is autoloaded.