Use DAG manner of expressing relations between jobs
This MR uses a DAG (Direct Acyclic Graph) to express the relations between jobs.
Built on top of !464 (merged). Relevant diff: https://gitlab.cern.ch/lhcb/Allen/-/compare/dcampora_contracts...dcampora_better_ci
Edited by Daniel Hugo Campora Perez