Update Executor: add private attribute _workflow and actual .run_workflow() method
Update Workflow: add abstract method .on_failure()
Update swf.Executor: call .on_failure() when the workflow fails