feat: Provision locked Bun on native Windows x64 (#14750)
Provisions locked Bun on native Windows x64 from the official baseline
zip, with `bun.exe` and `bunx.exe` exports.
Part of TURBO-6221. Stacked on #14746.
Based on the level-2 integration branch
`shew/setup-integration-l2-20261012` (#14745) through #14746. It will be
rebased onto `main` after its prerequisite stacks merge: the Windows
provisioning stack (#14582, #14584, #14591, #14659, #14672), the
Yarn/Bun stack (#14555 through #14658), and #14657 for the official Bun
archive metadata.
Resolution already locked `windows-x64` (the `-baseline` build) and
`windows-arm64`; only promotion refused Windows. It now follows the same
host rule as Node and the registry managers:
```diff
BunPlan::from_lock(lock, platform)
- macOS | GNU Linux, and only on Unix builds
+ macOS | GNU Linux on Unix builds
+ windows-x64 on native Windows builds # bun-windows-x64-baseline.zip
windows-arm64, musl, anything else -> UnsupportedTarget
```
```text
.turbo/tools/<generation>/
├── bin/
│ ├── bun.exe # hard link to tools/bun/bun.exe
│ └── bunx.exe # same binary; Bun runs `bun x` when invoked as bunx, as in Bun's install.ps1
└── tools/bun/bun.exe
```
- Bun-only repositories need no Node on Windows either, and Node+Bun
repositories export `node.exe` beside Bun.
- Windows arm64 stays refused before any traffic (#14672), so x64 turbo
under emulation never installs an x64 Bun.
- The Windows fixture archive mirrors the official one: made on Unix, a
`0777` root directory entry, then `bun.exe`. A lock without
`windows-x64`, or with the non-baseline `bun-windows-x64.zip`, fails
frozen setup and `--check` without traffic or writes.
The Windows test `zip` builder gains a Unix-host mode for that archive.