Use 3.4's ssl.create_default_context when available

Related #472 
If you do catch OSerror, you need to verify e.errno; those aren't
equivilant.

On Wed Oct 29 2014 at 12:56:47 PM Donald Stufft <notifications@github.com>
wrote:

> In urllib3/util/ssl_.py:
>
> > +        be created using :func:`create_urllib3_context`.
> > +    :param ciphers:
> > +        A string of ciphers we wish the client to support. This is not
> > +        supported on Python 2.6 as the ssl module does not support it.
> > +    """
> > +    context = ssl_context
> > +    if context is None:
> > +        context = create_urllib3_context(ssl_version, cert_reqs,
> > +                                         ciphers=ciphers)
> > +
> > +    if ca_certs:
> > +        try:
> > +            context.load_verify_locations(ca_certs)
> > +        # Py32 raises IOError
> > +        # Py33 raises FileNotFoundError
> > +        except Exception as e:  # Reraise as SSLError
>
> It is an OSError subclass though, so it could be (IOError, OSError), or
> add something like:
>
> try:
>     FileNotFoundErrorexcept NameError:
>     FileNotFoundError = OSError
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/shazow/urllib3/pull/473/files#r19567355>.
>