Merge branch 'dev' into at_least_work
adds outputstream.LocalFile
removes file after test
removes file after test
InputStream(Executor|Dispatcher) => Job(Executor|Dispatcher)
separate (Input|Output)StreamExecutor because their main loops are different
separate (Input|Output)StreamExecutor because their main loops are different
creates scheduler module
simpler logger
wip
wip
works!!!!
updates TODOs
passes tests
works
removes ugly job_graph param in user main()
removes ugly job_graph param in user main()
removes ugly job_graph param in user main()
removes ugly job_graph param in user main()
unique job id