Add #869 to History
Ensure checked-out connections are checked in

The #fetch method has a begin/rescue/end for handling request failures.
The ensure that would check the connection back in was mistakenly added
to the request failure section instead of at the end of the method.
This meant that if the connection set-up failed the connection (or a nil
token) would not be checked back in.  This meant that RubyGems could
deadlock on connection failure.

Moving the ensure to the end of the method ensures either a connection
or a token is always present on the queue when the connection is not in
use which avoids the deadlock.

Discovered by @matthewd

See #869