Propagating results

run_job methods now return job result. WorkflowRunner passes those
results to next job. Workflow outputs are collected and represent
output of an entire workflow.