all: manage all outgoing requests in one place

I know, I know. Huge PR. I'm sorry :(

**This depends on #276.**

This gets rid of the connection module, and uses the abstracted [google-service-account](https://github.com/stephenplusplus/google-service-account). I know we talked about bringing back support for pem files, so when that time comes, I can just add it in the gsa lib.
Thinking about it more, if the tokenRefreshAttempts is more "global" as it is here, that might be beneficial when two requests both try to refresh the token, only one will succeed? (Maybe??? )