Gathering the metadata of repos and projects requires a significant
number of HTTP calls and is therefore slow and expensive. When
hacking on www-generator.py the ability to skip these calls can save a
lot of time allowing much more rapid iteration. So add a persistent
cache for this data, using the percache Python module.
This is mostly run in the gate, where the cache will be deleted on
each run. Documentation contributors running this locally may
occasionally need to manually remove the cache file, although
governance data generally changes slow enough that this is expected to
be a rare corner case.
As noted by the comment in _get_official_repos(), in the future we may
add support for loading governance data from a local repo, thereby
skipping the need for slow HTTP calls. But for now this is a simpler