Stokhos:  Clean-up MP::Vector mat-vec kernels.

Simplified the multitude of ensemble MP::Vector matrix-vector product
kernels by removing several variations that are either slower or overly
complex.  The Host version is now the dead-simple mat-vec routine,
relying on compiler vectorization, and this provides as good of
performance (for sufficienly large ensemble size) than anything else.
The Cuda kernels are simpler now too.
Stokhos:  Extend range of CPU MP::Vector performance tests.
TrilinosCouplings/FENL:  Change ensemble size to 16 for all devices.

The performance unit tests suggest that an ensemble size of 16-32 is
best for all devices (CPU, GPU, MIC).  However 32 currently doesn't work
for CUDA due to the reduce_all() in the response function requiring too
much shared memory (due to the large size of the scalar type).  We need
to fix that soon.  This commit also changed the corresponding ensemble
sizes for ETI.
Stokhos:  Add Quadrature wrapper to SmolyakPseudoSpectralOperator.

This allows Stokhos to generate sparse grids directly without requiring
Dakota.
TrilinosCouplings:  Add sparse grids to fenl_ensemble UQ driver.

Add --sparse to your command line arguments to get sparse grids, and
--tensor to get tensor grids.  The default is --tensor.
Stokhos:  Add missing files to CMakeLists.txt.
MueLu: cleaned up test optional dependencies

We only need to specify those not already in the lib optional
dependencies.
Panzer: Simplifying interface of DefaultImpl of BCStrategy-Dirichlet

This change is similar to adding the addDOF* methods to the equation sets.
There is an addDOF method that forces the gathering of a DOF. There
is also an addTarget method that sets up the dirichlet target.

Also added an explicit instantiation file
MueLu: stripping template args from output for interpreter tests

typhon is running MueLu without Kokkos, which results in failing test
due to this difference:

<  P0 = Teuchos::RCP<Xpetra::Matrix<double, int, int,
KokkosClassic::SerialNode, KokkosClassic::AltSparseOps<void, int,
KokkosClassic::SerialNode,
KokkosClassic::details::AltSparseOpsDefaultAllocator<int,
KokkosClassic::SerialNode> > >
>{ptr=0,node=0,strong_count=0,weak_count=0}   [unused]
---
>  P0 = Teuchos::RCP<Xpetra::Matrix<double, int, int, int, void>
>{ptr=0,node=0,strong_count=0,weak_count=0}   [unused]

So the only difference is in templates. There could be a better way to
treat that, but this is the fastest.
Tpetra: CrsMatrix: Exposed Import and Export typedefs.

CrsMatrix now exposes typedefs (import_type resp. export_type) for the
Import and Export specializations that it uses.  This makes the public
interface cleaner and briefer, and follows the example of CrsMatrix's
definition of a Map typedef (map_type).

These changes affect both the "classic" and Kokkos refactor versions
of Tpetra.

Build/Test Cases Summary
Enabled Packages: Tpetra, KokkosCore, KokkosMpiComm, KokkosCompat, KokkosContainers, KokkosLinAlg
0) MPI_DEBUG => passed: build-only passed => Not ready to push! (0.01 min)
1) SERIAL_RELEASE => passed: build-only passed => Not ready to push! (0.01 min)
2) MPI_DEBUG_KOKKOS_REFACTOR => passed: build-only passed => Not ready to push! (0.01 min)
3) SERIAL_RELEASE_KOKKOS_REFACTOR => passed: build-only passed => Not ready to push! (0.02 min)
WARNING: Forced the push!
Use a set of global_element-ids on each processor as the
basis for subsequent mesh generation. This will enable deletion
of individual elements.
Clean up unnecessary variables in function calls.
MueLu: minor fix
Tpetra,Ifpack2: Fixed build warnings in tests.
Tpetra: MV: Changed getLocalMV's ret type & deprec'd getLocalMVNonConst.

In the Kokkos refactor version of Tpetra,
MultiVector::getLocalMVNonConst was already deprecated.  This commit
adds that deprecation to the "classic" version of Tpetra.  It also
changes the return type of getLocalMV (in the classic version of
Tpetra; this was already done in the Kokkos refactor version) from
"const KokkosClassic::MultiVector&" to KokkosClassic::MultiVector.

This commit introduces build warnings to Ifpack2, due to use of the
deprecated method.  Subsequent commit(s) will remove use of the
deprecated method in Ifpack2.

I made this change in order to simplify completion of the Kokkos
refactor port of Tpetra.  There was never a need to have separate
getLocalMV and getLocalMVNonConst functions.  This is because

  1. the intent of each was to access the data, not to change the
     pointer (e.g., by reallocating), and
  2. KokkosClassic::MultiVector always implemented lightweight view
     semantics, so there was never a need to return it by reference.

The const method getLocalMV would have sufficed for both const and
nonconst access to the data, but only by returning the
KokkosClassic::MultiVector by value (shallow copy), not by reference.
This commit enforces this by deprecating getLocalMVNonConst, and
making getLocalMV return by value, not by reference.  The latter means
that getLocalMV can be used for both const and nonconst access to the
data.
Tpetra,Ifpack2: Removed use of deprec'd Tpetra::MV::getLocalMVNonConst.

My last commit deprecated Tpetra::MultiVector::getLocalMVNonConst.
This commit removes use of the deprecated method from Tpetra and
Ifpack2.
Tpetra: CrsMatrix: Fixed failing Ifpack2 test due to apply() issue.

For some reason, for the Kokkos refactor version of Tpetra only,
CrsMatrix::apply() doesn't do the right thing for alpha == 0 and beta
== 0.  This shows up in the Ifpack2 test RILUKSingleProcessUnitTests.
This commit adds special cases to CrsMatrix::apply() that fix this.  I
added the special cases to both the "classic" and Kokkos refactor
versions of Tpetra, since they are never a bad idea and can make the
alpha == 0 case more efficient.

Build/Test Cases Summary
Enabled Packages: Tpetra, KokkosCore, KokkosMpiComm, KokkosCompat, KokkosContainers, KokkosLinAlg, Ifpack2
0) MPI_DEBUG => passed: passed=96,notpassed=0 (7.65 min)
1) SERIAL_RELEASE => passed: passed=72,notpassed=0 (8.02 min)
2) MPI_RELEASE_KOKKOS_REFACTOR => passed: passed=99,notpassed=0 (16.88 min)
3) SERIAL_RELEASE_KOKKOS_REFACTOR => passed: passed=75,notpassed=0 (13.43 min)
Other local commits for this build/test group: 2553d79, df0c64d, 66670e7
TrilinosCouplings:  Fix FENL linking errors for OpenMP.
Tpetra: CrsMatrix: apply no longer uses MultiVector::operator=.

This avoids confusion with MultiVector switching to view semantics.
That could have caused the issue with the alpha = 0 and beta = 0 case
of apply() that Ifpack2 discovered (see one of my recent commits).

This commit affects both the "classic" and Kokkos refactor versions of
Tpetra.

Build/Test Cases Summary
Enabled Packages: Tpetra, KokkosCore, KokkosMpiComm, KokkosCompat, KokkosContainers, KokkosLinAlg, Ifpack2
0) MPI_DEBUG => passed: passed=96,notpassed=0 (4.94 min)
1) SERIAL_RELEASE => passed: passed=72,notpassed=0 (3.11 min)
2) MPI_RELEASE_KOKKOS_REFACTOR => passed: passed=99,notpassed=0 (7.97 min)
3) SERIAL_RELEASE_KOKKOS_REFACTOR => passed: passed=75,notpassed=0 (4.49 min)
[Belos] catch uncaught exceptions in tests

Build/Test Cases Summary
Enabled Packages: Belos
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=475,notpassed=0 (27.47 min)
1) SERIAL_RELEASE => passed: passed=441,notpassed=0 (10.23 min)
[NOX] catch uncaught exceptions in tests

Build/Test Cases Summary
Enabled Packages: NOX
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=182,notpassed=0 (4.76 min)
1) SERIAL_RELEASE => passed: passed=182,notpassed=0 (2.85 min)