Rename binding to metaids

Metaids in the pots reflects more the purpose of these variables and methods.
* timestream/manipulate/pot.py (getMetaKeys, getSbindList): Replaced old method
with Metaids method.
(getMeta, getSbind): Likewise.
(setMeta, setSbind): Likewise.
Create new component PopulatePotMetaIds

* timestream/manipulate/pipecomponents.py (PopulatePotMetaIds): new component
that will create additional meta ids for each pot in ImagePotMatrirx instance.
Though we have populated the meta ids, we have not way of accessing because we
can't (yet) make the ImagePotMatrix instance persistant. We don't make it
persistante because the ImagePotMatrix instance cannot be handled by json.
* timestream/manipulate/pipeline.py (complist): Fix small bug.
Start passing TimeStreamImage

* timestream/manipulate/pipecomponents.py: For all the components that passed an
nd.array as the image, we have changed it to a TimeStreamImage object.
* util/pipeline_demo.py : We now start of the process with a
TimeStreamImage instead of an nd.array.
Allow user to change configuration parameters.

We are not able to change parameters that are more complex: like a list of
values.
* util/pipeline_demo.py: Add a --set options that will parse comma (,) separated
option specifications.
* timestream/manipulate/configuration.py : Fix error where we were evaluating a
non-existing element.
Remove Tester component

* timestream/manipulate/pipecomponents.py (Tester): We are not really using it.
Remove it.
Remove un-used lines from PotDetector

* timestream/manipulate/pipecomponents.py (__call__): date is not used.
Subsec should be a TimeStream specific value

subsec is used to create image paths that increment if the path already exists.
TimeStreamImage should not worry about this as the context of adding an image
with a counter should be in TimeStream.
* timestream/__init__.py (TimeStream): Maintain the "increment" option, but
use a subsec var instead of image.subsec.
(TimeStreamImage.clone, subsec): Remove subsec from TimeStreamImage
Add a write method to TimeStreamImage.

* timestream/__init__.py (TimeStream.write_image): Call the new write method
(write, read): New methods to take care of the array writing. The read method is
added to be consistent with write but it just assigns path.
Path existence check should be in pixels

* timestream/__init__.py (pixels): Move the check to see if image file exists to
pixels method. The user should be able to set the path without an actuall file
existing so she can then call image.write()
Reset _pixels when changing _path

* timestream/__init__.py (path): We reset _pixels to None when chaning _path.
The logic behind this is that whenever you change _path you invalidate whatever
is in _pixels.
Avoid inconsistencies when setting pixels.

* timestream/__init__.py (pixels): When we set _pixels, _path becomes
inconsistent. We reset the _path to None. If the default timestream image is an
actual file, this leads to inconsistencies inside the instance (the _path does
not point to whatever is in _pixels) therefore we raise an exception.
* util/pipeline_demo.py: Remove the timestream reference from every image before
going into the pipeline.
Use the configuration Class for context instance.

* timestream/manipulate/pipecomponents.py: Uset the context variable as a
configuration object.
* util/pipeline_demo.py: Initialize context as ctx and pass along to the
pipeline.
Initialize instance vars not class vars.

* timestream/__init__.py (TimeStreamImage.__init__): Initialize instance vars in
the __init__ method.
Use TimeStreamImage in ImagePotMatrix

* timestream/manipulate/pipecomponents.py: Initialize ImagePotMatrix with
TimeStreamImage
* timestream/manipulate/pot.py (image): We handle the image internally with
_image. Once image is set, it cannot be unset.
Remove from_file in TimeStreamImage

* timestream/__init__.py (TimeStreamImage.from_file): Replace the logic in this
method by actually setting the path property.
Avoid touching the properties in clone.

* timestream/__init__.py (clone): Clone the inner variables of the
TimeStreamImage instance. The idea behind this is that the objects should be the
same when we copy the _ vars and we don't execute any code unnecessarily.
Work on internal consistency of TimeStreamImage

TimeStreamImage is driven by _path. _path should be valid at end of all
methods.!! In general we only use property variables inside methods when we have
a very good reason to do so.
* timestream/__init__.py (TimeStreamImage.write): Use _pixels and _path instead
of pixels and path.
(parent_timestream):Special case where we want to leave TimeStreamImage without
a _timestream. When ts==None, we leave evertying (_*) untouched
(datetime): Reset _path and _pixels when we set datetime.
Add class comments to TimeStreamImage

* timestream/__init__.py : Subject.
Add ImagePotMatrix to TimeStreamImage

We can now access pot specific data (segmentations, features, positions) from
the TimeStreamImage.
* timestream/__init__.py (ipm): Add ImagePotMatrix as _ipm to the
TimeStreamImage class.
* timestream/manipulate/pipecomponents.py : Remove explicit mentions of
ImagePotMatrix and access it from TimeStreamImage.
* timestream/manipulate/pot.py (__init__): Add FIXME to remember to check for
TimeStreamImage