fix --{no-}check-certificate and non-proxied https connections

Amazon S3's wildcard certificate doesn't work with FQDN-style buckets
(any bucket with a '.' in its name).

We were calling ssl._create_unverified_context() when
--no-check-certificate was being used, but this doesn't actually stop
the host name checks from happening, which on python 2.7.9, then fail
the connection before doing any useful work.

I don't think we need _create_unverified_context() at all, certainly
not for talking to S3 directly, and with --ca-cert present, we
shouldn't need it for any S3-like services either.

This patch also fixes up a failed merge conflict, having us use
_https_connection() on the non-proxied path like we intended.
Automatically disable ssl certificate hostname checking against AWS S3

http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

  "When using virtual hosted–style buckets with SSL, the SSL wild card
   certificate only matches buckets that do not contain periods. To work
   around this, use HTTP or write your own certificate verification
   logic."

Therefore, when we detect we are sending a request to
*.s3.amazonaws.com and are using SSL, we must disable hostname
checking. This seems to only impact python 2.7.9 and newer, as that's
where the new SSL context and checking exist.
Merge pull request #438 from mdomsch/bug/check-certificate

Bug/check certificate