Stop abusing socket global timeouts.

This is a fix for the long-standing #1935.

Now that `boto` requires Python 2.6+ (see #96cd2800b6db067e503ef499486adf50ee9ca928), we can rely on the `timeout` parameter of `urllib.request.build_opener` instead of hacking the global socket timeout.

We have ran into a lot of issues because of this on a `gevent` based application that integrates with S3 using instance credentials: when two S3 requests come at roughly the same time the the global socket timeout will be forever set to 1.0s because the way the global timeout is messed with is racy.