Require any of several alternative package dependencies

I think this would be useful for numerical codes which can depend on a number of packages as backends, which is becoming more common thanks to the array-api efforts.

If the rule is that all alternatives are equivalent solutions, it would only require a convention that whatever is encountered first is tried first. In the sense that, when building the set of missing dependencies, the first encountered dependency D|E adds D to the set, and the second encountered dependency E|D sees that one of E and D is already requested.

If you want to force installation of E, you can ask for it manually. Similarly, I would expect an extra [with-E] that specifically depends on E to force that package.