storing tasks in list and dict form on TaskGraph
made connections between upstream and downstream tasks
iterate over tasks in reverse depth-first search order from the tasks on which nothing depends
implemented breadth-first search
better checking on validity of task definition. dependencies must exist or be on the filesystem
fixed timing message to correctly account for downstream tasks
have to run in_sync twice
relative path on workflow file
added branching workflow
simplified duration message
Merge pull request #5 from deanmalmgren/dependency

implement dependency graph