We know best if we support SNI.
Use pyOpenSSL if present.

This gives us SNI goodies on all Python versions.
Fix subjectAltName support.

The SNI/subjectAltName tests have a one big problem: They access the
great big, bad Internet, because I am not sure how to create the
correct certificates for this.

Also, this only works in all cases if pyasn1 and ndg-httpsclient are
installed (parsing DER-encoded binary data extracted from X.509
extensions is not my idea of fun.)
Remove URLLIB3_USE_PYOPENSSL env var.
Remove network-dependent SNI-test.
CamelCase for class name.
Move PyOpenSSL-backed SSL into contrib.
Tests for urllib3.contrib.pyopenssl.

This makes the SNI-test raise SkipTest if SNI is not supported, so
it can be reused by test.contrib.test_pyopenssl even when the stdlib
does not support SNI.

It also tests the urllib3.contrib.pyopenssl module when its
dependencies are installed, by re-exporting HTTPS test-cases and
using module-level setup/teardown code to monkey patch urllib3.
Documentation for the PyOpenSSL contrib module.
Add inject_into_urllib3 code snippet.
Merge pull request #156 from kirkeby/pyopenssl-for-sni

Optional PyOpenSSL for SNI-support on Python2.