fix(connection): set token expiration date for GCE

A response from the GCE metadata server responds with data in a
different format from that of the GAPIToken() request. Instead of
looking for a property that doesn't exist `token_expires`, we now
calculate the expiration timestamp from `expires_in`.

For more, see [Authenticating from Google Compute Engine][auth].

[auth]:https://developers.google.com/compute/docs/authentication#applications

Fixes #212
This brings up a good point. If a token expires between the point when it's fetched and used in an API request, would we want to re-request a token?

I don't think we should add special handling for just this token, since we also have the `fetchServiceAccountToken_` function which gets a token. If we want to solve for the above problem, I think we can handle it somewhere else to be token source agnostic.