Added new meta-data and request capability to the pipeline.

Added the ability for keys to copy themselves during pipeline passes.
This allows arbitrary meta-data to flow back and forth in the pipeline
with changing the executives. Although this is similar to KEYS_TO_COPY,
it works significantly better. KEYS_TO_COPY has one major flow: it
does not work if the algorithm that is supposed to add the key to
KEYS_TO_COPY already executed and a filter downstream is causing re-
execution.

Also added the ability for keys to store meta-data in a data object's
information. Allowing them to check it later in NeedToExecuteData.
This allows filters to send a request upstream to potentially cause
a new execution of the pipeline with changing the executives. This was
not possible before.

This was done by adding 3 new virtual methods to vtkInformationKey:
NeedToExecute(), StoreMetaData() and CopyDefaultInformation(). Normally
these do nothing. Subclasses can overwrite them to implement new
behavior. These methods are called by the pipeline at certain times.
CopyDefaultInformation() is called during CopyDefaultInformation(),
StoreMetaData() after execution (REQUEST_DATA), NeedToExecute during
NeedToExecuteData.

Change-Id: Ice192eb0be9f0a47b512c1b0fa3cfbede74d81e1
PERF: Removed unnecessary function call.

The result of NeedToExecuteData() was already cached in N2E and
is not supposed to changed. Replaced the functional call with the
variable.

Change-Id: I295634db6239f626404854fb3aa66a8f74d8bb9a
Added an ensemble source.

vtkEnsembleSource is used to manage a collection of
data sources to represent a dataset ensemble. See
the class documentation for details.

Change-Id: I3a7530f6a5b0a3a20ac8ce69aad9435a49dd03d3
Merge topic 'ensemble-reader' into master

e2532923 Added an ensemble source.
38851122 PERF: Removed unnecessary function call.
be279517 Added new meta-data and request capability to the pipeline.