Refactor GoogleCredentials.get_application_default

This should have a diffbase of #83 but we can't specify those on GitHub.

As in #83 (after #82), I prefer to rebase this after #83 is merged.
i'm happy with cleaning up/refactoring the logic here.

i guess i'm confused about where we want this to go -- i thought we wanted to add a new function that amounted to

    creds = GoogleCredentials.get_application_default()
    if creds is None:
      # try 3LO
    raise NoCreds("can't get any credentials")

i don't know why we need to refactor this to do that?

i can see one good argument, namely that my first call above will `raise` right now. but that doesn't seem to be what we're fixing here.