playing around with things
add 'snapshot' method to repl; saves a TypedPipe to a SequenceFile
remove commented-out lines
snapshot successfully creates new flowDef

note: also disabled `resetFlowDef`
much simpler code to find sources and add them to newFlow
factor out into 'localizedFlow()', make repl jobs take an optional FlowDef
implement writeAndRun

this automatically runs the localized job and returns a TypedPipe to a new Source of it
get rid of added code in TypedPipe and ReplImplicits
remove unnecessary write() override
refactor writeFrom to not break compatibility
explain localizedFlow method
refactor snapshot enrichment into ShellTypedPipe for better type inference, fix implicits
add ReplTest (currently just checks to see if things compile)
comments
explain tests a bit
rename reachable -> upstream, move pipe methods into ShellTypedPipe
revert whitespace changes in TypedPipe
easy fixes ({}, new FlowDef, toSet)
get rid of 'writeFromAndGetTail' and instead just get the last pipe in the list
fix upstream heads filter, remove unnecessary import