add support for SNI

this makes urrlib3 use SNI if available
make tests pass
remove big try-except
really test if we have sni
fix typos in utils
fix type in HTTPSConnection docstring
move ssl.wrap_socket to utils
add imports for SNI handling
use SSLContext on Python >= 3.2
add actual SNI handling
Merge branch 'sni' into add_sni

Conflicts:
	urllib3/connectionpool.py
add unit test for SNI
Added v1.5 to changes.
Typo.
Revert "add unit test for SNI"

This reverts commit 7f7cb5b77b77704fb3d3c232cbb8dce77c258d9a.
add offline unit test for SNI
doc: ssl.wrap_socket() -> util.ssl_wrap_socket()
Do not raise socket.error when connection is refused by remote host.

When a new socket connection created by connection pool is refused by the remote host, handle this with the connection pool's retry mechanism, raising a MaxRetryError if the maximum number of retries is exceeded.
Fix overwritten Accept header when proxy is used

When a request specifies both an Accept header and a proxy server, the
Accept header value is overwritten.
Removed proxy-connection

-Removed Proxy-Connection from headers
-Added and updated tests