base-build-scratch: vm_size input — estate-runner VM sizing for the heavy jobs

New optional vm_size input sets the VM_SIZE variable on the five heavy
build jobs (build-base, kmod-zfs, kmod-nvidia, build-base-zfs,
build-base-zfs-nvidia); the estate custom executor's prepare hook maps
it to VM vCPU/memory/disk (small|medium|large). Inert on SaaS runners
and at the default empty value. promote deliberately keeps the executor
default (network-bound). Pairs with runner_tag: anvil for routing
compose/kmod builds onto estate hardware. Non-breaking.

Built for basef#22 (SaaS-exit Stage 2). E2E validated: ci/lint synthetic
consumers at 8f75808 — vm_size=large path (five jobs get VM_SIZE=large,
promote unset) and the default/current-basef path (VM_SIZE empty, inert).