Node.js usable auth

(Now with all jslint issues fixed.)

This pull request extends the auth portion of the client library to add the usable auth pattern for service accounts. This allows the user to create a few lines of code which will correctly set up a credential client no matter whether the code is running in GAE, GCE, a managed VM, or on a local dev machine.

See https://developers.google.com/accounts/docs/application-default-credentials for more information about usable auth.

See the examples/default_auth.js file for an example of how usable auth works in Node after this checkin.

All unit tests pass, in addition to many new tests to cover to new code.

Thanks!
This is really a critique of the Application Default Credential specified way of handling scopes. There are already two shipped implementations following this pattern. I would suggest we have a separate meeting about keeping or changing this pattern for all future implementations if there is a concern. I would recommend making that an orthogonal discussion to this code review.

I'm conscious that as an isolated implementation of this type that it looks problematic. And frankly scopes with service accounts are a problem where finding a clean solution with the short term behavior of our token servers was difficult.