Use the last redirected URL to create the Gem::Resolver::APISet

In the case that `bundler_api_url` redirects to another URL, this
prevents unnecessary 302s every time the API Resolver requests
dependencies for a gem.

This shaves about 3.5 seconds off the time it takes for me to run
`gem install sinatra`. Even more time is saved when installing gems
with more dependencies.
delegate prefetch to @remote_set in Gem::Resolver::InstallerSet

APISet has a #prefetch method that can request multiple specs at once,
but it was never called, meaning each dependency required a separate
request to the Bundler API.
Prevent zombie process for `gem open`

The open command did not detach the editor process which meant it could
be zombied.  This should not be a big deal because the command exits
afterward but it doesn't hurt to clean up after ourselves.

See @4a3439c
Silence open command tests

The open command used `echo` as the test editor which would result in
the filename showing up in the output.  This is undesirable as the child
process output cannot be captured.

Now a command that does not produce output is used.
Add test for #777
Add #544, #777 to History
only look at latest specs to suggest name

This reduced HTTP requests. Reviewed by @zenspider
Merge pull request #808 from tenderlove/faster_error

only look at latest specs to suggest name
Simplifiy `--debug` test
Use $VERBOSE to control warn output

Overriding Kernel#warn doesn't allow us to test warnings in
Gem::ConfigFile.  This was broken by @1bc83df because nobody remembers
that $VERBOSE controls Kernel#warn.
Print an extra message when --debug is set

Many people file bugs against RubyGems because they don't know what
--debug (and $DEBUG) do to ruby.  Now we print a message that will
hopefully make it a bit more clear.
Add #808 to History
Merge pull request #809 from tenderlove/faster_levenshtein

Speed up levenshtein distance
Added #809 to History
Update History with 2.2.2 release date
Merge pull request #773 from charliesome/reduce-api_set-requests

Reduce APISet requests
Fix broken test added after #773

This test was written after #773 (at least, I'm pretty sure it was) so
fix it to work with the URI check.
Update #773 for ruby without HTTPResponse#uri=

Older ruby does not have this feature so we have to fall back to the
slow way.
Add #773 to History
speed up levenshtein_distance about 18%