Fix output to new YAML timestream file. Fix selection of color card
Make error message more informative
Add "skip computing existing data" feature.
Add ts.__str__ method

Add method to stringify timestream instance, and test for it
Changes to be committed:
	modified:   tests/helpers.py
	modified:   tests/test_classes.py
	modified:   timestream/__init__.py
Add a getFeature to ImagePotHandler

* timestream/manipulate/pot.py (getFeature): New method that fetches the feature
by feature name
_pixels orthogonal from _path, _datetime and _timestream

TimeStreamImage was trying to keep _pixels, _path, _datetime and _timestream
consistent. However, _pixels is orthogonal from the other three; we need to be
able to set _pixels without changing _path and viseversa. This commits removes
the checks to _pixels.
* timestream/__init__.py (TimeStreamImage.read): Change method to force a
refresh in _pixels. Using this method is a way to replace a _pixels by
forcing a reading of _path.
(TimeStreamImage.pixels): Removed some logic and put it in the read method. We
call the read method from here.
(_pixel): Remove checks of consistency between _pixels and _path
Use the same TimeStreamImage instance to write to stream

* timestream/manipulate/pipecomponents.py (__call__): Use the incoming
TimeStreamImage to output to timestream.
StatParamCalculator need not be a class var

* timestream/manipulate/pot.py (ImagePotHandler): We create a new instance of
StatParamCalculator every time we need one. There is no sense in keeping an
instance alive for each pot.
Initialize instance vars not class vars.

* timestream/__init__.py (TimeStream.__init__): Subject
Add a list of images to TimeStream

* timestream/__init__.py (timeStream.images) New attribute holding a list of
TimeStreamImage instances. If this uses too much memory, we can always use a
directory structure in _data to keep pickled versions of each TimeStreamImage.
Add pickling methods to TimeStream

* timestream/__init__.py (strip): New method to strip all unnecessary elements
from the image list.
(pickledump, pickleload): New methods to pickle TimeStream instance.
* timestream/manipulate/pipecomponents.py (__call__): Call the pickle method
everytime we write to a ts_out
Move the image pickling to TimeStreamImage

The pickling in TimeStream produces a file that is way too big. And it also
make for a process that is a memory hog. We instead choose to create a
timestream structure under _data that will house ".p" files that contain each
TimeStreamImage pickle file.
* timestream/__init__.py (TimeStream.write_image, TimeStream.write_pickled_image):
Remove methods.
(TimeStream.write_pickled_image, TimeStream.load_pickled_image): New methods to
(TimeStream.strip): Remove method.
(TimeStream.images): Remove variable.
* timestream/manipulate/pipecomponents.py (ResultImageWriter.__call__): We
when we do the image write. Remove the explicit pickling.
Fix tests for the TimeStreamImage changes.

* tests/test_classes.py: replace from_file with self.path=
* timestream/__init__.py (__init__): Make sure we raise the error when datetime
is not a datetime