Adds OS name and version (e.g., ubuntu-22.04, macos-14, windows-2022) to the
cache key to prevent binary incompatibility issues when GitHub runner images
change.
Changes:
- Add getOSNameVersion() to detect OS name and version
- Include OS version in cache key (bump CACHE_VERSION to 2)
- Add cache-key output for debugging and testing
- Add test-cache-key-os-version workflow job
- Update test-musl to verify alpine in cache key
- Document cache key components in docs/caching.md
Closes#703