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)
Some cleanup in base class arithmetic operators. Added more tests.
Kokkos UQ-Ensemble : Performance data collection and output.
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)