Add an Executor to run flows without a Job

This is based on #914 The goal here is to make it easy to take a function that produces a TypedPipe, and to run that.

Next, we should have a methods that write `TypedPipe[T]` or `ValuePipe[T]` to the temp directory, then reads that in the Future to get a `Iterable[T]` or `T` respectively.

With the above, you can easily write jobs that loop that does some ML algorithm, for instance.
this is where using github tags would be nice...it'd be good to accrue some of the bigger breaking changes we'd like before 1.0. Like this.