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.
Probably the "right" way to do this is to use event hooks on the job stopping. I thought we had something to do that, will have to go back and look.