Refactored how pieces and extents are handled.

Refactoring the way VTK goes between piece and structured
extents. Before, extent translators were used when the pipeline
moved from structured to unstructured data converting piece
request to extent request. This caused many problems with filters
that altered extents, mainly a lot of redundant IO due to
repartitioning of different extents. This became extremely
cumbersome to manage when running distributed. The new behavior
pushes the extent translation all to way to the readers and
only when readers are able to read a subset. This works much
better. The only downside is that filters need to be able to
handle data extents different than update extents. Most filters
can do this but many imaging filters cannot. Those that are
needed in parallel will have to be updated.

As part of this work, I also removed MAXIMUM_NUMBER_OF_PIECES
and added CAN_HANDLE_PIECE_REQUEST. MAXIMUM_NUMBER_OF_PIECES had
reduced to being a boolean. 1 for serial sources, -1 for parallel
sources. I removed it and added a CAN_HANDLE_PIECE_REQUEST instead.
This key, produced by a source, tells the executive that a source is
able to handle piece request. It is a source only key produced in
RequestInformation and is not propagated downstream. If this key is
not present, the executive will only execute the source for piece 0
to produce the entire data. It is then up to the user to add a filter
that splits the data for other piece requests. The only exception to
this is when CAN_PRODUCE_SUB_EXTENT is present, in which case the
executive will split using an extent translator AT THE source - not
downstream.

Conflicts:
	Filters/FlowPaths/vtkParticleTracerBase.cxx

Change-Id: I8db4040289ff87331adeecded4a738313d9b52df
Update the XML readers and writers to work with pipeline changes.

The XML readers and writers, both parallel and serial, now work
with the pipeline changes. Now, all writers work with pieces
even though the structured ones can handle asking for a sub-
extent.

Change-Id: I9f757ba12a3b9fb84e141506dacadad608eb8b99
Cleaned up and fixed transmit filters for structured data.

Change-Id: I7e5c55259159752882c8ae056e08f9bec12b3c02
Fixed bug in send structured data.

The origin was not offset properly in cases where extent
had to be adjusted. This is all due to the fact that the
legacy writer always writes extents starting at 0.

Change-Id: Id37f21d7c99d2ecdf6285d2870bf87e10b534a7a
Fixed legacy parallel reader and writer.

To work with the new pipeline changes.

Change-Id: Ic5c8ac86026999f79924d8e61b10fbcb18286bb8
BUG: Was using array of wrong size.

Was trying to read the extent into an array of size 3 instead
of 6. Doh!

Change-Id: Ic8bb2872782c86739ddf8119b3d44edb35e42e06
Fixed compiler warnings.

Change-Id: I80d4dbda38c7a6d83d6ba3fadeb81cce1154a1b1
Changed synchronized templates class for new pipeline behavior.

Note that this change slightly breaks backward compatibility.
The filter now processes all points even if they are on a ghost
region. This means that this filter will produce ghost polygons
that need to be stripped downstream. This is in line with the
"filters should work with what they have" attitude the new
changes enforce. This makes pipeline and filter logic much
simpler.

Change-Id: I77738480eaf716ec74095f9573c0cfc403769037
Removed unused keys.

Change-Id: I24bf3b0959bf6e22543bb526b26d9fda14ab4c20
Updated filters and sources to work with new pipeline logic.

Change-Id: Id76d3bc545a64675a0820cb1d9b45c61a51efc6a
Moved key.

It made more sense to have both CAN_PRODUCE_SUB_EXTENT and
CAN_HANDLE_PIECE_REQUEST in vtkAlgorithm.

Change-Id: Ie64bb3e7c8417113bfb7f677c10d8feb5fdddc39
Cleaned up extent translators.

- Removed unused extent translator subclasses
- Removed unnecessary refereces to the extent translator
- Moved extent translator into Common/ExecutionModel

Change-Id: Idc53dd66891297b1f6a06ea3eb1baf394cb24b20
Removed unnecessary reference to extent translator

Change-Id: I74925cc4dbba114bebd3ae90268c193a048c6e33
ExtractSelection was not managing pieces corretly. Fixed.

Change-Id: Ife54f3e32daf790321d638669c569aed254c45d2
Filters should silently handle empty input

Change-Id: I707f0bff212922f42801622298c12456c0ed6f75
Fixed multiple issues with resample/probe filters.

The main issue was in asking the right update extent from
the input. Also fixed a number of bugs in the resample filter.

Change-Id: Id2a4a9989baaff6b5f51d20e5c298c676a220d86
Fixed contour filters

Change-Id: Ibbeb24c5f4ff4dc6ba160295ef9de0455988885d
Fixed issues in the group filter.

The group filter was not dealing with extents properly. It
needed to properly ask for the whole extent from inputs (which
was done using an extent translator in the past) and it needed
to remove whole extent from the output (the default is to copy
from 1st input).

Change-Id: Ib44282f7f48aa60c7fad9fa6a5cceeb50e9b2e54
COMP: Correct ParallelMPI module test dependencies

Parallel XML writers have been moved to a new module
vtkIOParalleXML (see 7355859). Tests in the ParallelMPI
module use the Parallel XML multi-block writer, hence they
now need to depend on vtkIOParallelXML, instead of
vtkIOParallel. Fixed that.

Change-Id: I5490cd9d9b5bbaeb7f1c29826f002ef97515dc4e
COMP: Remove HyperTreeGridGeometry::UpdateExtent()

UpdateExtent() is no longer compatible with the pipeline changes
introduced in this branch.

Change-Id: I364576e245c944803a0e7c674902d9194c3e4ede