all: manage all outgoing requests in one place

I know, I know. Huge PR.

**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.
A variation of just passing a callback is passing an object with `onAuthorized` -- this is useful when we're doing stream things, and don't want to have a `request` (the module) instance created for us automatically, as that's something we do on our own.