Initial Commit of the pipeline configuration.

* timestream/manipulate/configuration.py (PCFGException)
(PCFGExInvalidSubsection, PCFGExInvalidFile, PCFGExInvalidType): Configuration
Excetpion classes
(PCFGSection): New class containing logic that allows handling of the configure
object with separating perions ("."). (e.g. config.pipeline.arg1)
(PCFGConfig): Class with config root logic
Change asOutput to listIndexes

* timestream/manipulate/configuration.py (listIndexes): We generalize the output
method to include a way to list the indexes (without the values).
Add an iterator by index

* timestream/manipulate/configuration.py (iter_by_index): New method allowing
iteration by index. This sets us up for the merge method.
Add a merge method to configuration logic

* timestream/manipulate/configuration.py (listIndexes): We avoid outputing the
"-" character.
(merge): New class method that takes two arguments (A,B);  All what is in a will
be create or replaced in B.
Start using configuration.py for pipeline configuration.

* timestream/manipulate/configuration.py (__name): Removed __name from
PCFGSection. We no rely on the containing section to provide the __name
information.
(getVal): It can now return PCFGSection instances.
(iter_as_list): When encountering lists in configuration files we translated 0
to _0 in order to allow point "." naming (python does not allow subsection.0).
This means that the list is temporarily lost. This iterator will return the list
values in order with their index. Only works for subsections that have keys of
the type _{number}.
(asDict): Will return a dictionary  representation of the tree. Does not include
PCFGSection.
(hasSubSecName): New method. Returns True when a subsection has a specific name.
(size): New property. Return the length of __dict__["__subsections"]
(listSubSecNames): New method that returns a list (str) of subsection names.

* util/pijeline_demo.py:Initialize ImagePipeline with the new configuration
instance. All configuration values now come from the plConf instance. Rename the
variables for the general stuff in configuration.
(ts.data): We cannot put the configuration instance because json dose not
understnad it. We pass a dictionary
(opts): Replace -y by -p to signify "pipeline" and create a -t option to signify
timestream; both should point to configuration files and are optional.
(inputRootPath): Add some checks for this path.
(merge configuration): New section in the pipeline_demo that adds all the data
in timestream configuration file to the pipeline configuration file.

* timestream/manipulate/pipeline.py (__init__): Use iter_as_list to initialize
the pipelien components
Add comments specifying config files.

* util/pipeline_demo.py (result): Add examples of configuration files.