Tpetra: First cut at a MM Jacobi kernel.

Yup.  That.
Xpetra: Activating Tpetra Jacobi code.

Use it or lose it.

Build/Test Cases Summary
Enabled Packages: Tpetra, Xpetra
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=656,notpassed=0 (63.89 min)
1) SERIAL_RELEASE => passed: passed=581,notpassed=0 (32.45 min)
2) MPI_DEBUG_SS => passed: passed=1046,notpassed=0 (140.11 min)
Other local commits for this build/test group: b1f6998
Ifpack2: LocalFilter: Impl'd getNumEntriesInGlobalRow & getGlobalRowCopy

LocalFilter implements Tpetra::RowMatrix, so it should also implement
getNumEntriesInGlobalRow and getGlobalRowCopy.  However, the current
implementations of these methods just throw an exception.  RILUK needs
them in order to accept a LocalFilter, which it must do in order to
work if the input matrix is distributed over multiple MPI processes.
This commit adds the missing implementations.

This will move towards fixing a number of Ifpack2 bugs, such as 5992
and 5987.
Ifpack2: RILUK: Now uses LocalFilter if necessary.

This makes RILUK more consistent with ILUT.  It also makes fixing
Ifpack2 bugs relating to restrictions on the row, column, domain, and
range Maps easier, since we can focus on LocalFilter (Bug 5992)
instead of trying to fix all the incomplete factorizations separately.

Build/Test Cases Summary
Enabled Packages: Tpetra, Ifpack2, Belos
0) MPI_DEBUG => passed: passed=144,notpassed=0 (3.66 min)
1) SERIAL_RELEASE => passed: passed=121,notpassed=0 (0.38 min)
Other local commits for this build/test group: 336a1ef
Stokhos:  Add sparse matrix times multi-vector performance test.

The LayoutRight version is currently commented out because apparently
Kokkos::CrsMatrix doesn't have a kernel for this yet.
Ifpack2: LocalFilter: Fixed Frob norm bug; simplified getLocalDiagCopy.

LocalFilter::getFrobeniusNorm had a bug; it must always have returned
zero.  It could not possibly have been correct.  This commit hopefully
fixes that bug.  I will have to add a unit test to make sure it's
fixed.

LocalFilter::getLocalDiagCopy had a slow implementation that copied
ArrayRCP entries by hand.  I replaced it with an implementation that
uses MultiVector::offsetViewNonConst (to change the Map without
copying) and the original matrix's getLocalDiagCopy.

Build/Test Cases Summary
Enabled Packages: Tpetra, Ifpack2, Belos
0) MPI_DEBUG => passed: passed=144,notpassed=0 (3.65 min)
1) SERIAL_RELEASE => passed: passed=121,notpassed=0 (0.37 min)
Teuchos: new mode for TimeMonitor::summarize()

This commit adds a new mode of calculating global statistics for
TimeMonitor::summarize().  The new mode ignores contributions from
processes that either do not have a particular timer, or have a hard
zero for a timer.  This mode is off by default, meaning that the default
summarize behavior is unchanged.

This new mode is useful in cases where not all processes have the same
timers and/or some timers are zero.  This can arise when multiple MPI
communicators are in play.  A single call to summarize using a global
communicator yields reasonable statistics for all timers.  The cost is
an additional allReduce.

Consider this example:

proc 0 has timers T1=1.0, T2=0.5
proc 1 has timers         T2=1.0, T3=1.0
proc 2 has timers         T2=2.0, T3=0.5

where MCW is a communicator containing 0,1,2
      MC12 is a communicator containing 1,2

Calling TimeMonitor::summarize(MCW, std::cout, false, true, false, Teuchos::Union) yields

  min(T1)=0.0, avg(T1)=0.33, max(T1)=1.0
  min(T2)=0.5, avg(T2)=1.17, max(T2)=2.0
  min(T3)=0.0, avg(T3)=0.5,  max(T3)=1.0

Calling TimeMonitor::summarize(MC12, std::cout, false, true, false, Teuchos::Union) yields

  min(T1)=0.0, avg(T1)=0.0,  max(T1)=0.0
  min(T2)=1.0, avg(T2)=1.5,  max(T2)=2.0
  min(T3)=0.5, avg(T3)=0.75, max(T3)=1.0

While each is technically correct for the communicators given, neither by itself gives
information that one might want, namely, averages over just the processes that have a timer
and mins over the nonzero times.

new mode:
Calling TimeMonitor::summarize(MCW, std::cout, false, true, false, Teuchos::Union, "", true) yields

min(T1)=1.0, avg(T1)=1.0,  max(T1)=1.0
min(T2)=0.5, avg(T2)=1.17, max(T2)=2.0
min(T3)=0.5, avg(T3)=0.75, max(T3)=1.0

Build/Test Cases Summary
Enabled Packages: TeuchosComm
Disabled Packages: Tpetra,Epetra,Thyra,Zoltan,Shards,AztecOO,ML,FEI,NOX,Anasazi,Belos,Xpetra
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=435,notpassed=0 (0.93 min)
1) SERIAL_RELEASE => passed: passed=424,notpassed=0 (0.66 min)
Providing a complex scalar version of Belos::BlockGCRODR; a separate file and template
specialization is necessary because LAPACK routines are different (UNGQR vs ORGQR).
The complex version is contained in Belos::BlockGCRODRC.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Changing the default solver type.
Teuchos:  documentation change only

adding info about new summarize option.
Tpetra: sparse mat-mat: Fixed build error.

"error: redefinition of default argument"
Tpetra: MV (Kokkos ref.): Added first draft of DualView semantics.

The Kokkos refactor version of MultiVector now has a first draft of
DualView semantics:
  - getLocalView<Dev> () works like Kokkos::DualView::view
  - sync<Dev> () works like Kokkos::DualView::sync
  - modify<Dev> () works like Kokkos::DualView::modify

It's still possible to get the Kokkos::DualView, via the renamed
method getDualView, but this may disappear in the future or become a
protected method.

Build/Test Cases Summary
Enabled Packages: Tpetra, Ifpack2, Belos
0) MPI_DEBUG => FAILED: passed=143,notpassed=1 => Not ready to push! (3.64 min)
1) SERIAL_RELEASE => passed: passed=121,notpassed=0 (4.57 min)
Other local commits for this build/test group: 9e47386
WARNING: Forced the push!
Kokkos: DualView: Added lots of public documentation.

I also cleaned up and commented the source code a bit.
Kokkos: DualView: Moved init of fields from ctor body to init list.

Constructors call the constructors of each of their class' instance
data before entering the body of the constructor.  Thus, if you want
to initialize that data in a certain way, it's better to use the
constructor's initialization list (the part after the colon, between
the constructor's argument list and its { /* ... */ } body).  This
commit fixes DualView so all of its constructors do this.

Build/Test Cases Summary
Enabled Packages: Tpetra, KokkosCore, KokkosCompat, KokkosMpiComm, KokkosContainers, KokkosLinAlg, TrilinosCouplings
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_RELEASE_KOKKOS_REFACTOR => passed: passed=82,notpassed=0 (14.10 min)
3) SERIAL_RELEASE_KOKKOS_REFACTOR => passed: passed=63,notpassed=0 (5.90 min)
Other local commits for this build/test group: eb2b62b
Teuchos: propagating summarize option to overload

Adding ignoreZeroTimers options to overloaded version of summarize.
Updating unit test for this, as well.

Build/Test Cases Summary
Enabled Packages: TeuchosComm
0) MPI_DEBUG => passed: passed=15,notpassed=0 (2.22 min)
1) SERIAL_RELEASE => passed: passed=9,notpassed=0 (0.96 min)
IOSS: Add function which returns number of fields of a certain role defined on an entity

(From Sierra)

Build/Test Cases Summary
Enabled Packages: SEACASIoss
Disabled Packages: Panzer,PyTrilinos,SEACASExo2mat,SEACASMat2exo,Optika,TrilinosCouplings
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=11,notpassed=0 (17.56 min)
3) SERIAL_RELEASE_SS => passed: passed=12,notpassed=0 (20.45 min)
ML: Line GS (auto-detection) Fixing parallel bug; adding diagnostic output
ML: Line GS (auto-detection) Fixing bug in the last bugfix
ML: Line GS (auto-detection) Fixing bug in the last bugfix.  Again.

Build/Test Cases Summary
Enabled Packages: ML
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=331,notpassed=0 (5.43 min)
1) SERIAL_RELEASE => passed: passed=298,notpassed=0 (1.14 min)
Other local commits for this build/test group: 5ea7347, 62a20cd