- Changing how DAG is represented, both in code and how DAGs are defined
in JSON.
- Removing std::vector<Task> representation in favour of a map that will
enforce unique task names
- Task names now have a name (generated), and a definedName.
- Adding support to loggers to add tasks after a DAGRun has been
initialized.