Use 3.4's ssl.create_default_context when available

Related #472 
Nasty looking bit of code. Maybe we should pull it out into its own helper? At least that way we'd be able to short circuit the various branches and reduce the supernestedness.