Fine-grained artifact dependencies
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=24914)
</details>
<!--IssueSummary end-->
### Problem to solve
Currently we have several jobs that don't need all of the artefacts in it's dependency. And downloading artefacts from all the dependencies may take about 2m. Excluding files from artefacts is not an option, because we still want them to be available for download, it is just passing them to next jobs is redundant.
### Proposal
Enable specifying array of artifacts in the producer job and specifying list of artifact names per dependency in consumer jobs.
```yaml
producer:
artifacts:
- name: "reports"
paths:
- "*.xml"
when: always
- name: "data"
paths:
- "data/*"
when: on_success
consumer:
dependencies:
producer: ["reports"]
```
issue