Kokkos usecases : Cuda-aware-MPI initialization.

Cuda-aware-MPI capability of mvapich requires that the Cuda device
be initialized before MPI is initialized.  When a compute node has
multiple Cuda devices each MPI process on that node must select its
own device before MPI is initialized.  Usecases must choreograph
the initialization sequence discovered by Christian Trott for the
shannon.sandia.gov testbed.  This in-deveopment ParallelMachine
usecase class implements the proper initialization sequence.
TBD: Update usecases with this class and take advantage of
Cuda-aware-MPI capability when available.
Ifpack2: Modifying OverlappingPartitioner.

In the Vanka smoothing context, this change includes the pressure degree of freedom in the block.

Build/Test Cases Summary
Enabled Packages: Ifpack2
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=22,notpassed=0 (1.85 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (1.41 min)
Removed unneeded file.  Code is now in the partitioning solution.
Some cleanup in base class arithmetic operators. Added more tests.
Zoltan2 AlgPQJagged:
-Migration function is refactored.
-Migration function was not able to handle prime number of parts, now this is added to migration function.
-AlgPQJagged was not performing migration, once a migration has been avoided.
 Now MJ can perform migration at any time, regardless of the migration occurances in previous iterations.
Kokkos UQ-Ensemble : Performance data collection and output.
Zoltan2: AlgPQJagged removed old migration code
Ifpack2: Added "vanka" test directory with Tom's stuff.
MueLu: Adding Tom's mhd/geometric stuff.

Build/Test Cases Summary
Enabled Packages: Ifpack2, MueLu
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=22,notpassed=0 (3.16 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (2.62 min)
Other local commits for this build/test group: f668afd
MueLu, Ifpack2: Modified CMake{whatever}.txt to not run Tom's tests

Build/Test Cases Summary
Enabled Packages: Ifpack2, MueLu
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=22,notpassed=0 (1.79 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (1.30 min)
Zoltan2: AlgPQJagged updated migration parameters.
The IC test depended on deprecated code and has been disabled in Ctest.

Here we replace it with a test that compares Ifpack_IC and Ifpack_ICT
to Ifpack_DiagPrecond. For SPD problems the number of iterations
should be less than diagonal preconditioning. Currently,
no preconditioning parameters (level of fill, drop tolerance) are set.
This should be tested in another test (or expand this one).

TODO: The new test currently does not pass, so has not yet
been enabled.
KokkosArray:  Modified gpu_uq test case to work without Stokhos.

Now the "poly" test driver will at least do something without Stokhos,
in which case it will run the CRS-product-Legendre kernel.
Remove include of unused file.
Moved matching algorithm to algorithms/match to allow reuse.
Called it GreedyMWM for now; feel free to change the name
Zoltan2: PQjagged Algorithm-
 -Refactored Migration code.
 -Added Z1 Communication plan for migration.
 -added one more parameter to set migration option.
zoltan2 pqJaggedTest: minor fixes.
Zoltan2: pqJaggedAlgorithm - disabled migration.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Zoltan2: AlgPQjagged: minor fix.