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!
I'm not sure I fully understand this one. Maybe require more discussion. getApplicationDefault is simply a factory, discovering the current environment and then returning one of the two existing auth clients, depending upon what is appropriate. This follows the overall spec for usable auth.

It is highly unlikely that anyone would ever call getApplicationDefault and then fail to use the resulting credential. So the discovery is done upfront. The credential is cached, so this will only occur once.