Previously the Docker image baked in .MOO test files and the CI copied
them into the workspace before running make testdata. This caused stale
test data on the CI when the test repos were updated, because fetch.py
skipped existing .MOO files without checking if the source was newer.
Changes:
- Dockerfile: replace COPY of .MOO/masks/metadata with sparse git clones
of 8088 and v20 repos into /opt/testdata-cache/
- fetch.py: accept TESTDATA_CACHE env var for git cache dir, and add
mtime check so existing .MOO files are re-extracted when .gz is newer
- .woodpecker/test.yaml: remove file-copy cache step, set TESTDATA_CACHE
env var on the testdata step instead
This ensures CI always gets fresh test data via git pull + re-extraction
while keeping the fast path of not re-downloading unchanged repos.