I noticed this while reviewing the recent `kong` diff and seeing this odd bit:
```diff
diff --git a/_bashbrew-list-build-order b/kong_2/kong.tar.gz
similarity index 100%
copy from _bashbrew-list-build-order
copy to kong_2/kong.tar.gz
```
Knowing that `kong.tar.gz` is supposed to be an empty file, I wondered why `_bashbrew-list-build-order` was apparently empty, and discovered that it's because `.TagEntries` is only available/valid when we're actually passing _tags_ to `bashbrew`. 😅
Also, update other scripts to use `bashbrew fetch` and `gitCache` effectively to remove unnecessary reimplementations of `BASHBREW_CACHE` default value calculation (new in bashbrew v0.1.8).
As a parting gift, add the raw list of total supported architectures to a file so it's more obvious when new ones are added or removed (like `ubuntu` losing `riscv64`).
When we run `diff-pr.sh` on PRs, it normally shows us a diff of either `amd64` or the first supported architecture.
However, when we implemented support for external pins, I was very silly and had it show us _all_ architectures.
This makes for very long diffs.
In this change, I've updated that external pins logic to match the prior logic -- in lieu of better diffing algorithms (targeting review instead of patching) that can do smarter things like collapsing deltas that are identical, I think this is the right thing to do.
This uses `crane` to download some of the JSON files of the remote images to give us at least *some* amount of diffing between updates to external pins.
This should help avoid "empty cat" output we saw recently when something failed to fetch but was otherwise valid.
The current implementation is trying to do two things with one output:
1. normalized `bashbrew cat` diff
2. visualize `--build-order` changes
This change splits those into two separate things because combining them ends up making the diff harder to read than it should be ("changed tags + changed commit" leading to a full reordering of the diff because build-order also changed).
This leads to significantly smaller diffs in instances like major distro releases where the Python version moves from something like 3.9 to 3.10 (and a large portion of the diff is then just directory renames as a result).
Example output of this bashbrew template (assuming `hello-world` had been converted to use `SharedTags`):
```console
$ bashbrew cat --format "$sharedTagsListTemplate" --all | grep -vE '^$'
hello-world:latest -- hello-world:linux, hello-world:nanoserver
```