Add Source::Git#specs

This loads all of the specs in a git repository, not just the named one.
Fix Gem::Source#pretty_print with api_uri
Prefetch all specs in a git repository

A git repository can contain multiple gems, so prefetch all the specs,
not just a few to match bundler behavior.
Use GitSet#prefetch from #find_all for code reuse
Cache the GitSet#prefetch

We will call this multiple times via find_all, so we shouldn't be
repeating the work.
Remove Source::Git and Resolver::GitSet load_spec

These methods were used for loading a single gemspec from a git
repository, but this was wrong.  Now Source::Git#specs is used.
Update Source::Git#name documentation

The name is purely cosmetic.
Support single require entry for gem.deps.rb

Bug found while running the tests for a private app.
Add missing "n" to dependency
Use BestSet to enable bundler API for gem.deps.rb

Previously we used IndexSet which uses the Marshal index.  BestSet picks
either Bundler API or IndexSet depending upon which is available.
Flatten sets when composing a composed set

This reduces needless recursion as BestSet is a ComposedSet that is
itself composed with other sets during gem.deps.rb resolution.
Document Resolver::compose_sets
Document Resolver::ComposedSet
Dup the req list before using so we keep the state pristine for backtracking
Make error more verbose
Add more debugging info resolver tracking
Walk back through states directly

We no longer keep around states that can't initially use because they
represent failed branches within the search tree. Instead we modify the
code that decides which state to return to, so that we don't unwind the
tree too far each time.
Merge branch 'master' of github.com:rubygems/rubygems
Add APISet#pretty_print
Complete Resolver::Conflict documentation