Add a timeout for GCE detection.

This is a temporary workaround for #93, though may end up being the final fix.

I did some test cleanup while I was here, switching to `mock`.

PTAL @dhermes
we could -- but the response would only be large in the case of something like a captive portal, where i'm downloading a whole page, right? in that case, might be more work than it's worth.