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.
What attempt count is this? Is attempts to make the request or attempts to get a token? Token refresh attempt count is set to 1 above but this is two.