use socket.getdefaulttimeout() on App Engine as well as off, take 2

the first attempt (3118243f371f56ba5b6cf9d7dfcea09c98daa573) wouldn't set the timeout for clients that passed deadline=None explicitly, which App Engine's httplib often does. this fixes that.
Merge pull request #259 from snarfed/master

Use socket.getdefaulttimeout() on App Engine as well as off, take 2: set the timeout for clients that passed deadline=None explicitly.