zoltan2:  adding pamgen global calls
zoltan2: adding pamgen global call
manually merged NNTI2 from trios_nnti_2.0_begin_development
some bits of code from origin/master made it through the merge with NNTI2.  cleanup here.
NNTI_fini() - if NNTI_init() called MPI_Init(), then call MPI_Finalize()
When selecting a default transport, demote Portals3 so that MPI is prefered.
Build but do not run tests that are not supported by all transports.
Explicitly set the number of ranks for each test.  The default is rarely correct.
Add NNTI_fini() to properly shutdown NNTI.

Build/Test Cases Summary
Enabled Packages: Trios
0) MPI_DEBUG => Skipped configure, build, test due to no enabled packages! => 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=28,notpassed=0 (3.08 min)
Other local commits for this build/test group: c60859c, 0995689, de61498, 1ecf95b, 19229f4
Tpetra: MultiVector: Optimized subCopy for a contiguous index range.

This commit affects both the "classic" and Kokkos refactor versions of
Tpetra.  This change simplifies the implementation of Belos' Tpetra
wrapper (MultiVecTraits) and will help me find in a bug in something
else that I'm working on.
Tpetra::Experimental::BlockMV: Now accepts input MV w/ copy semantics.

Before, Tpetra::Experimental::BlockMultiVector only accepted an input
MultiVector (to its constructor) with view semantics (getCopyOrView()
returns Teuchos::View).  Now, it also takes an input MultiVector with
copy semantics (getCopyOrView() returns Teuchos::Copy).  It handles
the latter case by creating a view of the input MultiVector, and
telling the view to have view semantics.  (That sounds silly, but
recall that "copy / view semantics" only refers to the default
behavior of MultiVector's copy constructor and operator=.  Note also
that in the Kokkos refactor version of Tpetra, MultiVector _always_
has view semantics.)

This should help fix some issues that Travis Fisher noticed with the
Tpetra specialization of Belos::MultiVecTraits.  Thanks to Travis for
reporting this and helping me debug it!
Tpetra: MultiVector: Opt'd subView(NonConst) for contiguous index range.

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

I optimized subView and subViewNonConst in MultiVector to check for a
contiguous input column index range.  If it is contiguous, the methods
call their contiguous-range counterparts.  This allows simplifications
in the Tpetra specializations of Anasazi::MultiVecTraits and
Belos::MultiVecTraits.
Belos::MultiVecTraits: Force Tpetra specialization to use view semantics

The Tpetra specialization of MultiVecTraits now forces MultiVector
objects that Belos itself creates to use view semantics.  This change
makes life easier for Tpetra::Experimental::BlockCrsMatrix, which
wants to view the MultiVector arguments to apply() as
BlockMultiVector.  The latter prefers the MultiVector that it views to
have view semantics.  (My recent commit relaxes this requirement, but
it's still better to favor view semantics, since this is where Tpetra
is going anyway.)

The two overloads of CloneView and the two overloads of
CloneViewNonConst are the only exceptions to the changes in this
commit.  For some reason I currently don't understand, the Belos
MVOpTester and/or OrthoManager tests fail if I make the returned view
have view semantics.  This is true for both the "classic" and Kokkos
refactor versions of Tpetra.  I don't know why this is the case.
Belos shouldn't care whether Tpetra uses copy or view semantics, and
the Kokkos refactor version of Tpetra _always_ uses view semantics.
Nevertheless, the tests fail, so I will leave the following line
commented out for now.  This is true for both CloneView overloads as
well as both CloneViewNonConst overloads.

Thanks to Travis Fisher for discovering and reporting this issue!

Note: "Copy" vs. "view" semantics refer to the default behavior of
MultiVector's copy constructor and operator=.  See the documentation
of MultiVector::{get,set}CopyOrView for details.  It sounds confusing,
but a returned "view of a MultiVector" -- e.g., the result of
subView(NonConst) or offsetView(NonConst) -- may have either copy or
view semantics, in the "classic" version of Tpetra.  The Kokkos
refactor version of MultiVector _always_ has view semantics; it is not
allowed to have copy semantics.

Build/Test Cases Summary
Enabled Packages: KokkosCore, KokkosCompat, KokkosContainers, KokkosLinAlg, KokkosMpiComm, KokkosAlgorithms, Tpetra, Ifpack2, Belos, Amesos2, Zoltan2
0) MPI_DEBUG => passed: passed=153,notpassed=0 (4.14 min)
1) SERIAL_RELEASE => passed: passed=127,notpassed=0 (0.39 min)
2) MPI_DEBUG_KOKKOS_REFACTOR => passed: passed=215,notpassed=0 (6.08 min)
3) MPI_RELEASE_KOKKOS_REFACTOR => passed: passed=206,notpassed=0 (4.26 min)
Other local commits for this build/test group: efa5735, 5fae25c, a762b21
zoltan2:commented out some pamgen global calls that do not perform as documented
PyTrilinos: Update build system to check for mpi4py

The mpi4py module is optional, but there are a couple of use cases
where the PyTrilinos wrappers need to know about it.  Specifically, if
the user imports mpi4py or distarray prior to importing Teuchos, then
we need to provide an MPI_Comm object to the Teuchos.MpiComm
constructor that may not be MPI_COMM_WORLD.  In order to do this, we
need mpi4py typemaps for MPI_Comm.

If CMake cannot find the mpi4py Python package, then none of this
infrastructure is enabled.  If CMake can find the mpi4py package, then
these capabilities are enabled.
PyTrilinos: Added HAVE_MPI4PY configuration macro

This is enabled if the PYTHON_EXECUTABLE can successfully "import
mpi4py", disabled otherwise.
PyTriinos: Added arrays of ints and floats as valid ParameterList values

The PyTrilinos ParameterList protocol now supports arrays as valid
values.  They can be set by using NumPy ndarrays of dtype int32,
int64, float32 or float64, or by using Python sequences (lists or
tuples) of int or float (which are converted to arrays of type long
and double, respectively).

The PyTrilinos.Teuchos.ParameterList unit tests have been updated to
accommodate the new types.
PyTrilinos: Add CMake Find logic for Mpi4Py

This behaves much like the FindNumPy.cmake file, setting Mpi4Py_FOUND,
Mpi4Py_VERSION and Mpi4Py_INCLUDE_DIR CMake variables.
PyTrilinos: Added support for mpi4py.MPI.Comm objects

When the mpi4py Python package is found, the Epetra_MpiComm and
Teuchos::MpiComm constructors can now take mpi4py.MPI.Comm arguments,
allowing for communicators that are not MPI_COMM_WORLD.

Also, if the distarray module has been imported, the default
communicators are defined by
distarray.localapi.mpiutils.get_base_comm(), which will often omit
processor rank 0.  This distarray function returns an
mpi4py.MPI.Intracomm object, which is a sub-class of mpi4py.MPI.Comm.
replace CRLF line terminators with Unix LF

In some files that haven't been touched in many years, Windows line terminators
(CRLF) were present. This commit replaces those by standard Unix line
terminators (LF) as used by most Unix and Unix-like systems such as GNU/Linux,
and Mac OS X.

See bug #6026.
Minor change; should get rid of some CDASH failures.