artifacts: Add copy dependencies for all artifacts that reference variants
Any configuration that references build artifacts from another variant should create a cross-variant dependency. Prior to this change, only `copies` and `builder.requirements` did so; `node.requirements`, `python.requirements`, `php.requirements`, and `builders.*.requirements` did not. Defined a `config.VariantDependent` interface that builder types can implement to return their cross-variant dependencies.