Handle the case of an unreachable network.

This can happen in a number of cases, a good example is when your stack
tries to make an IPv6 connection and it is not possible.
fix adopting nested query params from URLs

References #173, fixes #240
bring in gemspec from master
standards-compliant URI escaping
optimize and test Utils.escape()

Fixes #159
respect user+password credentials from HTTP proxy URI

References #178
bring in Connection#initialize docs from master