Use sync.Once instead of sync.Map (#698)
Use sync.Once instead of sync.Map (#698)

google.Keychain doesn't actually care about the target resource, so
caching based on the resource was never useful. In fact, it was actively
harmful, since we were invoking gcloud for every repository that
keychain called. We don't hit that often, but `gcrane cp -r` for a large
registry will definitely notice.
google/go-containerregistry,google/go-containerregistry