Make DAGs support and run on snapshots

Title says it all
This should get initialized on the `Job` class, not in `DAG`. This is meant to be basically a mixin and should not have any Dagobah-specific processing in it.