Make an Execution[T] type, which is a monad, which makes composing Jobs easy.

sort of, but actually it should be a `ReaderT[WriterT[ImmutableFlowDef], (Config, Mode, ConcurrentExecutionContext), Future, T]` or something like that. There are three monads here, Reader, Writer, Future.