Added data and APIs to the task engine to distinguish between failure and dependency failure.
Merge branch 'master' into separate-depfail
Merge branch 'master' into separate-depfail
Merge branch 'master' into separate-depfail
Check for any dependency failures, instead of all.
Persist task status.
Added extra tests for task engine persistence.
Merge branch 'separate-depfail'