KokkosContainers: add a performance test simulating a global to local id
map lookup for the unordered_map
MueLu: TopSmootherF: use only presmoother for the coarsest level

Previously, we constructed both pre and post smoothers. That resulted in
solving the coarsest sytem twice.
MueLu: Hierarchy: removed old debug messages
MueLu: TopSmootherF: check pre and post smoother for null
Ifpack2: SparseContainer: Simplified & optimized apply & weightedApply.

The optimization isn't fully in place yet.  The idea is that the methods
would detect whether the subset permutation (defined by ID(i)) is equal
to the local indices.  If so, the methods could skip copying and
permuting input and output multivectors.  All of that is in place,
except for detection of the special case.  Commented-out code already
exists in the compute() method to handle this case.

I also took the chance to fix a few different preconditioners' apply()
methods.  They were missing implementations for some cases of nondefault
mode, alpha, and/or beta arguments.  Thus, if called with nondefault
values of these arguments, the methods might throw an exception or
silently return an incorrect answer.  In some cases, I added the missing
implementations, and in others, I added checks for the unimplemented
cases.

Finally, I changed Tpetra::MultiVector::elementWiseMultiply so that it
wouldn't throw an exception in case its arguments have different
communicators or incompatible Maps.  This lets (for example) the scaling
vector D have a globally distributed Map (with MPI_COMM_WORLD, for
example) but the other multivector input to have a local Map (with
MPI_COMM_SELF), as long as they both have the same number of local rows
on each process.  This is useful for SparseContainer's weightedApply
method.

Build/Test Cases Summary
Enabled Packages: Ifpack2
0) MPI_DEBUG => passed: passed=22,notpassed=0 (0.48 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (5.25 min)
Ifpack2: SparseContainer: Enabled "need permutation" optimization.

See my last commit message.  The optimization was commented out in
the last commit; this commit enables it.

Build/Test Cases Summary
Enabled Packages: Ifpack2
0) MPI_DEBUG => passed: passed=22,notpassed=0 (0.47 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (0.08 min)
Update Headers for Sierra's flat header dir

Xpetra needs a new header to be put in the flat headers so Sierra can access it.
PARAVIEW: Fixed gcc 4.4.4 compiler warning.

Added PARAVIEW_CATALYST environment variable to override
the default library plug-in search.

(From Sierra)

Build/Test Cases Summary
Enabled Packages: SEACASIoss
Disabled Packages: Panzer,PyTrilinos
Enabled all Forward Packages
0) MPI_DEBUG => Skipped configure, build, test due to no enabled packages! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Skipped configure, build, test due to no enabled packages! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG_SS => passed: passed=21,notpassed=0 (22.03 min)
3) SERIAL_RELEASE_SS => passed: passed=22,notpassed=0 (23.68 min)
Ifpack2: Improved public docs of BlockRelaxation & (Sparse)Container.
Ifpack2: Container,SparseContainer: Improved docs, & marked apply const.

I improved the public documentation of Container and SparseContainer.
I also marked the apply() and weightedApply() methods const, for future
compatibility with Tpetra::Operator.  Eventually, we want Container to
implement Preconditioner.  Since Preconditioner in turn implements
Tpetra::Operator, and Tpetra::Operator's apply() method is const,
Container's apply() method would also need to be marked const if we
decide to make Container implement Preconditioner.

We want Container to implement Preconditioner in order to make it
possible to nest Ifpack2 preconditioners arbitrarily.  For example,
we could extract a Container and apply it directly as a preconditioner
in a Belos iterative solve.
Ifpack2: Improved public documentation of BlockRelaxation & Container.

Build/Test Cases Summary
Enabled Packages: Ifpack2
0) MPI_DEBUG => passed: passed=22,notpassed=0 (0.46 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (0.07 min)
Other local commits for this build/test group: 2417e3b, 99d2dbe
Kokkos: -Bugfixes for some Core stuff,
        -added team_barrier_count (i.e. syncthreads_count from CUDA)
         to CUDA Device
Panzer: Passing tie break to block assembly
Panzer: Adding mechansim for inducing "non int" GIDs...fixing bug

THe bug fix was in the scatter dirichlet residual whic was implicitly
casting GID to an int.
Kokkos: Example development.
Kokkos: resize( View , ... ) bug fix.
Kokkos: Replacing 'Kokkos::Host' with 'Kokkos::Threads' in preparation for removing 'Kokkos::Host'.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Ifpack2: SparseContainer: Attempt to address gcc 4.1.2 build errors.

The build errors might have something to do with the compiler not
being able to deduce that the result of *(RCP<MV>) can be cast to a
const MV&.  The errors only occur when calling Inverse_->apply, on
the first argument of that call.  I added explicit casts of the
result of *(RCP<MV>) to const MV&, for all places where the code was
calling Inverse_->apply.  Hopefully that will fix the issue.

Build/Test Cases Summary
Enabled Packages: Ifpack2
0) MPI_DEBUG => passed: passed=22,notpassed=0 (0.48 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (0.05 min)
Kokkos: (1) Switching HostMirror device from Kokkos::Host to Kokkos::OpenMP or Kokkos::Threads.
        (2) Enable Kokkos::Threads to run serial if not initialized.