Tpetra: Fixed build warning in test (unused variable).
Tpetra: RTI: Fixed build error in test.

<:: is not a valid way to begin a template argument list.  One must
leave a space between the less-than sign and the double colon.  The
specific build error was reported here:

http://testing.sandia.gov/cdash/viewBuildError.php?buildid=1464649

as follows:

error: `<::' cannot begin a template-argument list [-fpermissive]
note: `<:' is an alternate spelling for `['. Insert whitespace between
`<' and `::' (if you use `-fpermissive' G++ will accept your code)

This commit adds a space between the `<' and the `::', as directed
by the compiler.
Tpetra: RTI: Added output to help debug RTI CG test.

RTI's CG test fails in SERIAL_RELEASE.  It looks like CG runs, but zeros
out everything (including the current solution vector and the internal
residual).  This makes CG "converge," but it computes a solution vector
of zero, which is wrong.

I'm a bit worried that the changes I made recently (e.g., added Pair
with volatile overloads) broke something, though I think that code is
only used by a different example, not in RTI core or by this example.

The test still fails, but the output added in this commit will help with
debugging.
Tpetra: Fixed "typedef locally defined but not used" build warnings.

Build/Test Cases Summary
Enabled Packages: Tpetra
0) MPI_DEBUG => passed: passed=74,notpassed=0 (1.59 min)
1) SERIAL_RELEASE => FAILED: passed=57,notpassed=1 => Not ready to push! (0.29 min)
Other local commits for this build/test group: 035903a, cb07982, fe30da8
WARNING: Forced the push!
SEACAS: aprepro - move array creation to a function

(From Sierra)
SEACAS: aprepro - add bilinear interpolation to array capability

(From Sierra)
SEACAS: aprepro_lib - add bilinear interpolation to array capability

(From Sierra)
EXODUS: Fix size_t printf format specification stupidity (klocwork)

(From Sierra)

Build/Test Cases Summary
Enabled Packages: SEACASAprepro, SEACASAprepro_lib, SEACASExodus
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 (26.47 min)
3) SERIAL_RELEASE_SS => passed: passed=122,notpassed=0 (26.81 min)
Other local commits for this build/test group: e9eeb4b, d39178f, 548e298
Intrepid: modified handling of singularity in Pyramidal basis functions.
Tpetra: RTI: Minor reformatting of CG test
Tpetra: TsqrAdaptor: Improved public docs
Tpetra: CrsMatrix: Fixed compiler "note" (hopefully).

Some versions of GCC issue the following "note" about line 1187 of
Tpetra_CrsMatrix_def.hpp:

The ABI of passing structure with complex float member has changed in GCC 4.4.

It's a "note," not a "warning," but CDash reports it as a warning.  This
technically makes Tpetra not warning-free.  It's also annoying to be
bothered by the message while Tpetra is building.  The note pertains to
CrsMatrix's nonlocals_ field, which stores data from nonowned rows given
to insertGlobalValues or sumIntoGlobalValues.  nonlocals_ was a std::map
from GlobalOrdinal to Teuchos::Array<std::pair<GlobalOrdinal, Scalar> >.
The map's value type was causing the compiler notes: GlobalOrdinal = int
and Scalar = std::complex<double>, for example.  I decided to address
this issue by rewriting nonlocals_ to make it a map from GlobalOrdinal
to std::pair<Array<GlobalOrdinal>, Array<Scalar> >.  That is, its value
type is now a struct of arrays rather than an array of structs.  This
didn't require too many changes to CrsMatrix, so I went ahead and did
it.  Hopefully this will make the "note" go away.

Build/Test Cases Summary
Enabled Packages: Tpetra
0) MPI_DEBUG => passed: passed=74,notpassed=0 (2.97 min)
1) SERIAL_RELEASE => FAILED: passed=57,notpassed=1 => Not ready to push! (4.76 min)
Other local commits for this build/test group: 45bafdc, c1f51d2
WARNING: Forced the push!
Fix small bug in Zoltan paper citation.
MueLu: new PerfUtils and new communication pattern routine

Created new PerfUtils file. The goal is to move all statistics related
stuff there, so that we don't put unnecessary stuff in original Utils
and Utils2.

Also added a function to plot communication graph of a matrix. The
pattern is printed as a seris of lines with the pattern:

<rank>: <neigh1>(<weight1>) <neigh2>(<weight2>) ...

where neigh* are neihboring processors, and weight* are the weights. The
weights are currently set to be the number of imported degrees of
freedom.
Xpetra: fixing subtle bugs

In a few places in Xpetra we had incorrect toXpetra functions.
Particularly,

  RCP<something> toXpetra(RCP<Tpetra something>)

were problematic. Those functions did not check whether the input object
was Teuchos::null or not, and always constructed a non-null Xpetra
object. This lead to such "interesting" situations like this one:
underlying Tpetra CrsGraph returns null Import, it goes through Xpetra wiring
and returns as not null, but calling any Import functions (like
getExportPIDs()) on it segfaults as it tries to dereference underlying
null pointer.

I've modified this pattern in the places I could find, by return
Teuchos::null whenever input is Teuchos::null.
Tpetra: CrsMatrix: Sync'd classic and Kokkos refactor versions.

In my last commit (af4440023709cd2259885d9b527e0be58f165294), I fixed a
build "warning" in CrsMatrix.  In that commit, I only implemented the
fix in the current ("classic") CrsMatrix implementation, not the Kokkos
refactor version.  This commit ports the fix to the Kokkos refactor
version.  I also synchronized some of the formatting and error messages
between the two versions.

Build/Test Cases Summary
Enabled Packages: Tpetra
0) MPI_DEBUG => passed: passed=74,notpassed=0 (1.53 min)
1) SERIAL_RELEASE => FAILED: passed=57,notpassed=1 => Not ready to push! (0.28 min)
WARNING: Forced the push!
Tpetra: Fixed some build warnings that appear only on some platforms.

Build/Test Cases Summary
Enabled Packages: Tpetra
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=74,notpassed=0 (1.53 min)
1) SERIAL_RELEASE => FAILED: passed=57,notpassed=1 => Not ready to push! (0.28 min)
WARNING: Forced the push!
Stratimikos: Belos adapter now accepts magnitudeType for tolerance.

Thyra::BelosLinearSolveWithOp (which lives in Stratimikos for some
reason) only used to accept double as the type of the "Convergence
Tolerance" parameter.  This meant that it would not let users give the
convergence tolerance as a general magnitude.  For example, if Scalar
= dd_real, it would make sense for the tolerance to be dd_real as
well.  Thus, I changed BelosLinearSolveWithOp::initialize to accept
both double (which it prefers, in compliance with Ross' wishes) and
magnitudeType.  If the type of "Convergence Tolerance" is neither, it
throws Teuchos::Exceptions::InvalidParameterType (the appropriate
exception in this case) with a helpful error message.

Note that the defaultTol_ field in the class was already a
magnitudeType.  This means the class was already ready to accept
tolerances of magnitudeType; it just needed to read them correctly
from the ParameterList.  It now does so from both the input
ParameterList (if provided) and the default ParameterList (if the
input list was not provided).

Thanks to Dr. Timo Betcke (University College London) for pointing out
this issue and offering a patch.  I took the liberty of improving on
it.

Build/Test Cases Summary
Enabled Packages: Stratimikos
Disabled Packages: MOOCHO,Rythmos,Sacado
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=137,notpassed=0 (4.71 min)
1) SERIAL_RELEASE => passed: passed=135,notpassed=0 (3.75 min)
Xpetra: removing CrsMatrix forward declaration from CrsGraph headers

Originally, the code was following Tpetra, which does have. But unlike
Tpetra, we don't make CrsMatrix a friend to CrsGraph, so we don't need
that.
Xpetra: fixing Local/Global ordinal issue