Fix broken job restarts after failures

Fixes #115 

When a job fails, the snapshot of the DAG is deleted, just like during completion. When we retry, the snapshot is not recreated, causing errors when trying to reach the next task after the failed tasks.

The fix is a simple one line addition to recreate the snapshot at the beginning of retry() and add a test case that tests this particular use case.
yeah that was my other thought too is that in the future, the destruction of a snapshot (especially if/when job-in-job is completed) may have more to it.

Good point on the temp var, I'll put that in.