Use 3.4's ssl.create_default_context when available

Related #472 
Yeah, this was far from obvious how to set, but I just scanned through the attributes and it's stored as `.protocol`. That said, this has the benefit of working 100% of the time with the `FakeSSLContext` class. It also allows the user to specify their own options, which is something that addresses @Lukasa's concerns to a degree.