Panzer: Adding configure time options for the FAD type

Use -D Panzer_ENABLE_FADTYPE=... the default is Sacado::ELRCacheFad::DFad
MueLu: FilteredAF: reintroduced the case of a new matrix

In some situations, it is actually beneficial to construct a new graph.
I've added a parameter "filtered matrix: reuse graph" which allows to
switch between two use cases. It is "true" by default.
MueLu: RebalanceTransfer: fixing for implicit transpose case

NOTE: users of the old style XML decks with rebalancing must update
their XML files.

The original version did the migration of nullspace and coordinates in
the RebalanceTransferFactory in "Restriction mode". However, for the
implicit transpose case the requests for nullspace come in very late, on
the next level. The issue is that the import requires all processors,
but not all get to this next level. As a result, we get a hang.

This patch is the fastest fix for the issue by moving migration of
nullspace and coordinate into the "Interpolation" mode, which is always
called now, even if we do implicit P and R rebalancing. The proper fix
would be to move the migration to RebalanceAcFactor, either as a code
chunk, or as a new factory and add it to the list of transfer factories
in RebalancedAcFactory.
Kokkos: disabling a unit test for DefaultDeviceType

One of the unit tests does not work for CudaDevice unless UVM is used
(which I did). I disabled that test for DefaultDeviceType since
with Cuda enabled the DefaultDeviceType is Cuda.
Kokkos: Fix memory allocation to allow greater than 2^32.
Kokkos: Added new Kokkos::initialize(int,char**)

The new initialize() interpretes commandline arguments to set
threads, numa and device id (including MPI->GPU mapping).
The arguments are:

--help               : print this message
--threads INT        : specify total number of threads or
                       number of threads per numa region if
                       used in conjunction with '--numa' option.
--numa INT           : specify number of numa regions used by process.
--device INT         : specify device id to be used by kokkos.
--ndevices INT [INT] : used when running MPI jobs. Specify number of
                       of devices per node to be used. Process to device
                       mapping happens by obtaining the local mpi rank
                       and assigning devices round robbin. The optional
                       second argument allows for an exisiting device
                       to be ignored. This is most usefull on workstations
                       with multiple GPUs of which one is used to drive
                       screen output.