Using Nock to mock network requests

Our tests went from taking ~1 second to run and making legitimate network requests to the API to taking ~80 milliseconds and making no calls to the API or external network. This will greatly stabilize our testing environment and do away with the MockTransporter which is hacky and really just tests our ability to write tests that pass.

I've included Nock here and have updated the tests in question to hit Nock instead. I will rip out the MockTransporter once we merge this.

For example, there was one test in the OAuth2 tests that requests certificates from the network. This has been updated to pull from a file.

All other tests make requests in one way or another to different API endpoints, and a lot don't care about the response of the request so they never fail, but this could and probably does have many side-effects with the API itself. For example, URL Shortener API does not require authentication for a certain number of requests/hour... So we are actually creating new short urls when running our tests because we make legitimate calls to the API.

Bonus: Added tests for query params.
Are we appending user's user-agen to defaultUserAgent? Or is the user allowed to override the User-Agent header? We should make sure that all requests coming from this client has google-api-nodejs-client/<version>.