Add a simplified interface for Stream

Now, Stream takes a single transform argument. The old interface remains,
renamed to DirectStream.
If that transform is a pipe, Stream will split its child transforms
appropriately, and set up a DirectStream. Adjacent non-timeVarying transforms
are grouped in pipes, time varying transforms all get separate stages.

The default behavior isn't necessarily ideal if e.g. a lot of light time
varying stages are present, in that case its possible the additional
synchronization costs will outweight gains from paraellelism (due to having
more separate single thread stages). In these cases DirectStream may be
preferable, however current algorithms seem largely unaffected.