Changes based on comments on pull #173

* `ssl.SSLContext` is new in Python 3.2 and all of the features
  used here are available from then on.
* The when using an `SSLContext` the `check_hostname` kwarg *requires*
  that `context.verify_mode` be set to **either** `ssl.CERT_REQUIRED`
  **or** `ssl.CERT_OPTIONAL`. `ssl.CERT_NONE` raises an exception.