Fix macOS vcpkg binary-cache environment identity (#33773)
### Description
<!-- Describe your changes. -->
Add an early environment-identity step to the reusable macOS CI workflow
and include its SHA-256 digest in the vcpkg binary-cache key. The
identity records the hosted runner image OS/revision, macOS build,
selected Xcode version/build, Apple Clang version, and macOS SDK build.
The step inspects the Xcode that the subsequent setup action selects,
rather than the image-default Xcode, logs the identity, and fails
explicitly if required metadata or tool queries are unavailable.
Preserve the existing machine, target architecture, configuration,
Xcode, and EP boundaries. The shared cache action is unchanged: only
main runs save caches, other refs restore only, and the manifest-hash
restore fallback stays within the environment identity. Non-Mac caches
are unaffected.
Local validation passed: workflow YAML parsing, Bash syntax, mocked Bash
execution covering deterministic SHA-256 output, changes to each
identity input, missing/empty image metadata, tool-query failure, step
ordering, and the existing save/restore policy. `git diff --check`
passed. Native macOS execution was not run; the local harness uses
mocked macOS tools and does not establish real package reuse.
### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
A [main
run](https://github.com/microsoft/onnxruntime/actions/runs/41021234838/job/123948791417)
restored an exact outer vcpkg cache key, but vcpkg restored 0/23
packages and rebuilt dependencies for roughly 19 minutes. The post-cache
step could not save the rebuilt packages because the immutable primary
key already existed. A [warm PR
run](https://github.com/microsoft/onnxruntime/actions/runs/41037792127/job/124002826346)
restored 23/23 packages under the same key. Both selected Xcode 26.3,
but their runner image revisions differed: 20261028.0489.1 versus
20260907.0337.1.
This is evidence of an environment/ABI mismatch, not proof of the
particular ABI input responsible. Including image revision is a
conservative backstop for environment differences not captured by the
explicit toolchain fingerprint; it may invalidate reusable packages
after unrelated image updates. Each new identity requires a successful
main run to populate its cache. This change does not claim to
fingerprint every possible vcpkg ABI input.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>