Allow the writer to stream the data slice-by-slice.

This is to improve efficiency when writing large files.  If the
pipeline is capable of processing the data one slice at a time,
then only one slice has to be loaded into memory at a time.