Refactor some data structures to move towards coping with the
additional complexity, but fundamentally, add branches to download and
use different binaries on different platforms.
Having applied this patch, and having prepared hosts with a current
Rhizome, it is possible to provision an arm64 VM like so:
Prog::Vm::Nexus.assemble("pubkey", dev_project.id, arch: "arm64")
As the host architectures are "learned" from teh host, there is no
need to change how `Prog::Vm::HostNexus.assemble` is called.