Some of the variants/dependencies in the prototype were unneeded,
I went through also with a keen eye on keeping the total number
of variants a bit lower. I also added defaults that I consider
useful.
This adds a loop with versions around the resource definitions allowing
for multiple versions of the dune package with the expected behaviour
of dependency forwarding to Dune modules.
Additionally, it avoids the code duplication of _get_needed_resources:
It modifies the resource list to include the transitive closure of
Dune module dependencies and then calls the original implementation.