Language changes for paper
These changes simplify the Dagrt language and the code builder interface.
The first change is that the semantics of the DAG is changed so that all statements get executed, instead of just those reachable from depends_on. depends_on becomes a computed attribute of the phase DAG. This is a non-backwards compatible change that means that DAGs are no longer allowed to carry unreachable "dead" code.
The language version is bumped to 2019.3.
The code builder interface is changed to remove the function reset_dep_tracking and the attribute phase_dependencies. Code that is generated by the code builder should still function as previously, with the exception of the removed function. The dependency DAG that is generated by the code builder no longer uses Nops as placeholders, which simplifies its output.
Corresponding leap MR: leap!27 (merged)