Display Gem::Source API URI correctly in pretty_print
Allow setting repository for spec_fetcher

This allows multiple source repositories to be set up easily from the
tests using TestCase#spec_fetcher.
Handle multiple gem sources correctly

Now each source has its own GEM section header.
Use RequestSet#requests for lockfile dependencies

Now RubyGems uses the requests instead of the dependencies to generate
the lockfile.  This means rubygems generates a smaller set of entries
than bundler, but it seems to be the only way to implement handling of
git dependencies properly.

This commit may need to be reverted.
Remove unused variables
Conditionally install gems from a lockfile

Previously locked gems were considered installed, but this is incorrect.
Now they are installed if their specification is missing.  This may not
correctly handle git or default gems.

Part of #727
Git gems are always re-installed