feat: add override for virtual packages
This adds the ability to override detected virtual packages with ones defined on the CLI for the host environment during build (and for the run environment during test).
This should make it easier for cross-platform building & testing, as well as for "cross-platform" solvability checks.
TODO:
- [ ] decide if
--virtual-package-for-host __cuda=12.0is the best way to do this - [ ] wire up the virtual packages for test time
Long-term we would like to figure out a more robust solution for virtual packages and cross-platform building. Ideally it would look a bit more like what we have in pixi (system-requirements).
It would make sense for the recipes themselves to decide on minimum system requirements. For example, a certain recipe might only build with macos: 12.0. That should be expressable in the recipe itself.
Additionally, conda-forge should be able to set global minimum system requirements so that we know what default values to pick for every system. This should go in the next generation "variant configuration" file.