Tpetra: Map: Enabled check that global min GID == index base.

Map currently requires that the global min GID (that is, the min GID
over all processes) equals the index base.  This commit adds a check to
the noncontiguous constructor to enforce this.  The constructor already
computes (via all-reduce) the global min GID, so the check is cheap.
Ifpack2: RILUK: Removed duplicate definition of computeCondEst method.

Build/Test Cases Summary
Enabled Packages: Ifpack2
0) MPI_DEBUG => passed: passed=23,notpassed=0 (0.52 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (0.09 min)
Bug 5998.

Added a missing #include.

Build/Test Cases Summary
Enabled Packages: KokkosCore
0) MPI_DEBUG => Test case MPI_DEBUG was not run! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG => passed: passed=2,notpassed=0 (0.97 min)
3) SERIAL_RELEASE => passed: passed=2,notpassed=0 (0.92 min)
SEACAS: Add exodus.py (for Trilinos and standalone seacas)

(From Sierra)
SEACAS: exodiff - fix bug in error message output

(From Sierra)
Seacas: Fix issue with Trilinos build

A file was being configured directly into the installation directory which
causes problems when the configuration doesn't specify an installation prefix
since cmake defaults to /usr which often isn't writable by the user configuring.
The configure logic was changed to configure the file directly in the build tree
and then register the configured file for installation. This will prevent the
file from appearing in the installation path unless a user actually runs an
install build.

(From Sierra)

Build/Test Cases Summary
Enabled Packages: SEACASExodiff, SEACAS
Disabled Packages: Panzer,PyTrilinos,SEACASExo2mat,SEACASMat2exo
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=120,notpassed=0 (27.10 min)
3) SERIAL_RELEASE_SS => passed: passed=122,notpassed=0 (29.00 min)
Other local commits for this build/test group: 0f5866e, f8a11c4
ML: fixed a memory corruption in matrix read example

The line length was not enough to hold Matrix Market header.
Isorropia: fixed misprints in using omp flush

Was std::flush instead of simply flush.
Kokkos: New Kokkos wrapper Node can now be DefaultNode.

WARNING: This commit will break Tpetra and its downstream packages.  We
have separated it out into a separate commit in order to make a nicer
commit message, and also because other files that we had to change (in
order to build tests) don't have much to do with the goal of this
commit.

NOTE: Please blame Mark Hoemmen <mhoemme@sandia.gov> (who is writing this
commit message) for any breakage that results from this commit.

The goal of this commit is to make it possible for
KokkosClassic::DefaultNode::DefaultNodeType to be any of the new Kokkos
wrapper Node types.  These types include the following:

  - Kokkos::Compat::KokkosCudaWrapperNode
  - Kokkos::Compat::KokkosOpenMPWrapperNode
  - Kokkos::Compat::KokkosThreadsWrapperNode

You may specify the default Node type using the CMake option
KokkosClassic_DefaultNode.  For example:

KokkosClassic_DefaultNode:STRING="Kokkos::Compat::KokkosOpenMPWrapperNode"

In order to make this work, we had to do the following:

1. We reversed the dependency between KokkosClassic and KokkosCompat.
It used to be that KokkosCompat had a required dependency on
KokkosClassic.  Now KokkosClassic has an optional dependency on
KokkosCompat.  We will need to move one unit test into KokkosClassic in
order to make all the tests work; we disabled that one test for now.

2. We moved the Kokkos::Compat::NodeDevice struct (which maps from
KokkosClassic Node type to new Kokkos Device type) from KokkosCompat to
KokkosClassic.

3. We fixed some use of const and static in KokkosClassic functors.
This should only be a problem for users who are writing their own
KokkosClassic functors and were depending on functor methods being
class (static) methods, instead of const instance methods.

Subsequent commits will address build issues in Kokkos and Tpetra that
this commit introduces.
Kokkos: Core: View: Added non_const_type public typedef.

This is the nonconst version of const_type.  We found it useful
for implementing something in Tpetra::CrsMatrix, but it should be
as generally useful as const_type.
Tpetra: Fixed incorrect assumption that DefaultNodeType == SerialNode.

Two Tpetra unit tests were incorrectly assuming that
KokkosClassic::DefaultNode::DefaultNodeType ==
KokkosClassic::SerialNode.  This commit fixes that assumption.
Tpetra: CrsGraph: Fixed incorrect ArrayRCP assignment.

This only affects the kokkos_refactor version of CrsGraph.

Build/Test Cases Summary
Enabled Packages: KokkosClassic, Kokkos, KokkosCompat, KokkosCore, Tpetra
Disabled Packages: MOOCHO,Rythmos,Amesos,Anasazi,OptiPack,Moertel,FEI,NOX,RBGen
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=320,notpassed=0 (5.64 min)
1) SERIAL_RELEASE => passed: passed=277,notpassed=0 (0.53 min)
Other local commits for this build/test group: 6ff05e0, f9825d5, 6a5016a
Moving MueLu::Amesos2BlockSmoother to MueLu::SchwarzSmoother; this
allows the use of both Ifpack2 preconditioners and Amesos2 solvers.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Tpetra: TestingUtilities: getNode now defers to KokkosClassic.

Tpetra::TestingUtilities has a getNode template method that creates a
Kokkos Node instance for testing.  It used to have full specializations
for each of KokkosClassic's Node types.  This duplicated
KokkosClassic::Details::getNode.  It makes more sense to put this
functionality in KokkosClassic than in Tpetra, so that Tpetra doesn't
have to know about all the valid Node types.  Thus, I changed
Tpetra::TestingUtilities::getNode just to call the function in
KokkosClassic.

This will help Christian Trott's effort to make the whole Tpetra stack
work with his new "wrapper Node" type (that emulates KokkosClassic's
Node functionality using new Kokkos).

I also took the opportunity to clean up and document TestingUtilities
code and the header file itself.
Kokkos: Improved main Doxygen page and View public documentation.

Build/Test Cases Summary
Enabled Packages: KokkosCore, Kokkos, Tpetra
Disabled Packages: MOOCHO,Rythmos,Amesos,Anasazi,OptiPack,Moertel,FEI,NOX,RBGen
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=298,notpassed=0 (5.52 min)
1) SERIAL_RELEASE => passed: passed=257,notpassed=0 (0.44 min)
Other local commits for this build/test group: 4a0315d
Galeri: explicitly cast argument to abs to double since abs(long long) missing.
Fix for Linux-PGI-11.1-SERIAL_OPT_DEV1 Windows_NT-MSVC9-SERIAL_OPT_DEV

Build/Test Cases Summary
Enabled Packages: Epetra, Teuchos
Disabled Packages: SEACAS,Sundance,STK
Enabled all Forward Packages
0) MPI_DEBUG => FAILED: passed=1729,notpassed=64 => Not ready to push! (88.31 min)
1) SERIAL_RELEASE => passed: passed=1700,notpassed=0 (56.03 min)
WARNING: Forced the push!
MueLu: removed typedefs from global namespace

This should dramatically cut on the number of MueLu warnings.
Ifpack2: Added new TPL and package macros to Ifpack2_config.h(.in).

These macros will help in catching any possible future errors in
Ifpack2's CMake configuration scripts, especially those relating
to TPLs and packages that certain Ifpack2 preconditioners (like
SupportGraph, which motivated this commit) may need.
Ifpack2: SupportGraph: Fix for build errors.

I had introduced build errors in an earlier commit, when I started to
clean up the class without realizing that it was not built by default.
Ifpack2 will not build SupportGraph unless all of the following
conditions are met:

- Ifpack2_ENABLE_Experimental is ON
- Amesos2 package is enabled
- Boost TPL is enabled
- Cholmod TPL is enabled (Cholmod lives in Tim Davis' SuiteSparse)

I met all of these conditions and was able to test the build.
Unfortunately SupportGraph does not have a test in the Trilinos source
tree, so I could only test syntactic correctness.  However, SupportGraph
does at least now compile.  I also took the opportunity to clean up a
few more things.  For example, I added sanity checks for Boost and
Amesos2 header includes that could help diagnose any possible future
bugs due to changes to Ifpack2's CMake scripts.  I also registered
SupportGraph's timers with Teuchos::TimeMonitor, so that TimeMonitor's
class methods (like summarize()) can print statistics for these timers.

Build/Test Cases Summary
Enabled Packages: Ifpack2, Amesos2
Disabled Packages: MOOCHO,Rythmos,Anasazi,OptiPack,Moertel,FEI,NOX,RBGen
Enabled all Forward Packages
0) MPI_DEBUG => Test case MPI_DEBUG was not run! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG_SS => passed: passed=28,notpassed=0 (0.60 min)
Other local commits for this build/test group: 3f945ff