Fix bug. Check to see if iphPrev is None

* timestream/manipulate/plantSegmenter.py (mask): Only assign a previous mask
from an existing previous pot.
Allow ResultingImageWriter to be inserted anywhere.

While ResultingImageWriter can be inserted anywhere, it will not be able to
create different output timestreams yet. We still need to add a way to define
multiple timestreams and a way to use them from inside the components.
* timestream/manipulate/pipecomponents.py (runExpects, runReturns): The
components that define their runReturns as [None] will be handled differently.
This allows for components to "tap into" the pipeline and gather information.
(__call__): These new type of components must return the same args that they
receive.
* timestream/manipulate/pipeline.py (__init__): We relax the checks on the new
component types. All the elements in the expecting list should be in the
providing list.
Add multiple output streams.

It is now possible to define and use different output streams from the yaml
configuration file. Each output streams has a name wich can be used in the
yaml config file.
* timestream/manipulate/pipecomponents.py (ResultingImageWriter.argNames): We
now expect the user to tell us to which output stream we should write the
images.
(__call__): The output steam is provided by the context.
* util/pipeline_demo.py (yfile): Contains the information from the yaml file.
(settings): Is yfile["pipeline"]
(outstreams): Is yfile["outstreams"]
(context): We now iterate through outstreams and create an output stream for
each one defined in the yaml config.
Expect an numpy.ndarray at startup.

This moves away from what we want in the end. To pass around TimeStreamImages
but it is necessary to be able to seamlessly start at any point in the
pipeline. When we do move towards TimeStreamImage, we should move all the
pipecomponents at once.
* timestream/manipulate/pipecomponents.py (runExpects): Expect a np.ndarray
instead of a TimeStreamImage.
(__call__): Don't access the pixels attribute.
* util/pipeline_demo.py (result): Initialize the pipeline with a np.ndarray.
Add context to the pipeline init.

This allows to guess the output path for all pipeline components
* timestream/manipulate/pipecomponents.py (__init__): Add context to all
initalization methods.
(ResultingFeatureWriter_csv.__init__): Get the output dir from the context if
the user has not set one.
* timestream/manipulate/pipeline.py (__init__): Add context to the init args.
We will pass the context to all the ImagePotHandlers.
* util/pipeline_demo.py: Put the output directory in the context dictionary as
"outputroot".