[auth] Have a consistent idea of an instance service account.
[auth] Have a consistent idea of an instance service account.

Part of forklift is to move to using specific service accounts on
an instance and not the default service account. Which means apps
should have a simple way to get the instance level service account,
even when running in skolo.

Today a server can call:

   auth.NewDefaultClient(*local, scopes...)

and it will work locally and on GCE, but not in skolo. Since we
now have an access token provider in skolo we can get this to
work everywhere.

Note that this CL also adds:

   auth.NewDefaultTokenSource(*local, scopes...)

Since this is needed for APIs that use gRPC.

This CL also adds ProjectId() which is used in this CL and will
also be used in the revised push/pulld.

Bug: skia:
Change-Id: Ia56b26a9101346de6cccbb9626b982e0a4d05457
Reviewed-on: https://skia-review.googlesource.com/117041
Commit-Queue: Joe Gregorio <b9cf2471ff6d33504cafe8e6f356b732b2cadced@google.com>
Reviewed-by: Eric Boren <0e499112533c8544f0505ea0d08394fb5ad7d8fa@google.com>

google/skia-buildbot,google/skia-buildbot,google/skia-buildbot,google/skia-buildbot,google/skia-buildbot,google/skia-buildbot,google/skia-buildbot,google/skia-buildbot