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.
But `Flow[Any]` is not really right either, because `Flow[C]` is invariant in `C` even though it should be covariant (C only appears in return values). It really has some type, we just don't tell you what it is.