go_sdk: store SDK filenames and hashes in lockfile facts (#4393)
**What type of PR is this?**
Feature
**What does this PR do? Why is it needed?**
This moves the download of the "all versions" JSON, which can't hit the
repository cache, from each individual `go_download_sdk` into the module
extension. If the current version of Bazel supports facts, this
information will also be persisted in the lockfile, allowing for truly
airgapped builds assuming an up-to-date download (formerly repository)
cache.
See https://github.com/bazelbuild/bazel/pull/26198 for the PR that adds
facts support to Bazel.
**Which issues(s) does this PR fix?**
Fixes #3945
**Other notes for review**
5 files changed