Tpetra: CrsMatrix: Optimized insertGlobalValues for nonowned rows.

insertGlobalValues for nonowned rows was doing more std::map lookups
than necessary, because it was using operator[] to access the value
rather than a nonconst reference or iterator.  I changed it to use a
nonconst reference.
Tpetra: CrsMatrix: insertGlobalValues no longer does column filtering.

insertGlobalValues used to "filter out" (silently ignore) columns not
in the column Map, if the matrix had a column Map.  This behavior made
it hard for users to debug their code, because it silently hid their
mistakes.  This commit changes this behavior, so that
insertGlobalValues inserts all the column indices given to it,
including those not in the column Map.  It also changes the test that
used to ensure that column Map filtering occurred.

This commit also adds a new private method insertGlobalValuesFiltered,
which retains the old column filtering behavior.  This is useful for
implementing DistObject methods, which currently require column
filtering in order to do redistribution correctly.  (That's because
the DistObject's Map is currently the matrix's row Map.)

Finally, this commit improves the public documentation of
insertGlobalValues and insertLocalValues.  It now gives performance
tips that recommend users to prefer local indices, give good upper
bounds on the number of entries in each row when constructing the
CrsMatrix, use StaticProfile if possible, and construct the CrsMatrix
with a const graph if the use case suggests it.

Note that I have not yet changed insertLocalValues, or any of
CrsGraph's insert*Indices methods, not to do column filtering.  That
will happen in later commits.
Tpetra: CrsMatrix: insertLocalValues no longer columm Map filters.

This change is the analogue of my previous change to
insertGlobalValues.  I also had to change a CrsMatrix unit test that
exercised column Map filtering for insertLocalValues.

I also took the opportunity in this commit to remove the performance
warnings in insertGlobalValues and insertLocalValues for reallocation
with DynamicProfile.  The warnings never worked right anyway: they
should only have printed once per CrsMatrix instance, but for some
reason printed a lot more often than that.  Also, they printed to
std::cerr on all processes, which was not scalable.  If there is a
strong interest in the performance warnings, I can add them back in
with the necessary fixes to make them reasonable to use at scale.
Tpetra: CrsGraph: Got rid of reallocation efficiency warnings.

The efficiency warnings never quite worked right anyway.  They were
also not scalable, since they would print to stderr on all processes.
If there is strong interest in them, I can add them back, with fixes
to make them scalable and more useful.
Tpetra: CrsGraph: insert{Global,Local}Indices no longer column filter.

insertGlobalIndices and insertLocalIndices no longer silently ignore
column indices not in the column Map ("column Map filter"), if the
graph has a column Map.  This is analogous to my most recent changes
to CrsMatrix's insertGlobalValues and insertLocalValues.  I've also
changed the CrsGraph unit tests to reflect this.

CrsGraph now has private methods insertGlobalIndicesFiltered and
insertLocalIndicesFiltered that do column Map filtering.  These are
still useful for implementing DistObject properly when the destination
CrsGraph has a column Map.
Tpetra: CrsMatrix: Fixed warnings due to shadowing typedefs

Build/Test Cases Summary
Enabled Packages: Tpetra, Belos, Ifpack2, Xpetra, MueLu
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=174,notpassed=0 (4.61 min)
3) SERIAL_RELEASE_SS => passed: passed=155,notpassed=0 (0.51 min)
4) MPI_RELEASE_SS => passed: passed=173,notpassed=0 (3.03 min)
Other local commits for this build/test group: 589538c, 0a4753c, 488b316, 6008cae, e7f0d0b
working toward a configurable work request pool.
The work pool is enabled by setting TRIOS_NNTI_USE_WR_POOL=TRUE in the environment before launch.
The size of the pool can be configured by setting TRIOS_NNTI_WR_POOL_INITIAL_SIZE=<int> in the environment before launch.
The work request pool is off by default because it is unstable on Gemini.  Registering too many buffers exhausts Gemini resources.
when an RDMA buffer is popped from the buffer queue, its size may be larger than the buffer being transferred.  reduce the size so that extra bytes are not transferred.
when an RDMA buffer is pushed back on the buffer queue, reset its size to the max size of the buffers in the buffer queue.
struct nssi_request_header - add fetch_data field.  If the data is small enough to fit in the short request, then this is FALSE.  If the data is too big, then this is TRUE.
populate args.transport_name are processing command-line args.
trios_buffer_queue_init() - check for and abort if an illegal buffer_size of 0 is found.
process_event() - RDMA_TARGET_BUFFER is a misnomer.  It is a generic RDMA buffer that can be initiator or target.  Initiator events were not being processed.  Fix it.
New Feature: Send raw data in short request
1) Enable this feature with "export TRIOS_NSSI_PUT_DATA_IN_REQUEST=TRUE"
2) If the client's data buffer is small enough to fit, the data buffer is copied it into short request buffer.
3) Server copies data from short request into a local NNTI_buffer_t.
4) Server "gets" data with memcpy().
5) Server "puts" data with RDMA same as always.

Other changes related to new features:
nssi_client.cpp:encode_args() - rewrote this to avoid multi-level if-then-else statements while calculating contents of short request.  also discovered/fixed a bug in encoded header size.  encoded header size was calculated once at the beginning, but if the data buffer gets registered then the header is changed and the encoded size changes.  If fetch_args==FALSE, recalculate the encoded header size.
nssi_common.cpp - change the default size of buffers in the RDMA buffer queue to 0.  Unless the user explicitly sets a size, the RDMA buffer queue will be disabled.

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=24,notpassed=0 (2.98 min)
Other local commits for this build/test group: 3b855d0, 1ff888a, 224c711, 25d8c87, c03b9cc, b98bb14
Tribits: Fix issue with export system

The recent refactor of the export system changed a variable name that was used
to define where the include directories were. The new name was more consistent
with the other names used to create the configure files so the template files
were updated to use it instead of resurecting the old name.
adding Mesquite How-To guide to repository
 Fixing a memory leak.
Tpetra: Directory: Optimized sparse Maps (Bug 5822) fix.

This commit optimizes the recent "Directory of a sparse Map" fix (see
Bug 5822) in the following two ways:

1. Increase the "sparse Map threshold" (ratio of number of local
   elements in the Directory Map, to number of local elements in the
   original noncontiguous Map) from 2 to 10.

2. Use FixedHashTable instead of HashTable.

Using a hash table has a memory cost as well as a performance cost
(for both construction and lookups).  2x is probably not sufficiently
sparse to justify switching from the array-based implementation to the
hash table - based implementation.  We can tune this factor more if
there is interest.  For now, I'll set it to 10x.

FixedHashTable has a lower setup cost and better lookup performance
than HashTable.  We can use FixedHashTable in this case, because we
know all the keys and their values in advance.  The greater
flexibility of HashTable is unnecessary here.

The second optimization required adding a new constructor to
FixedHashTable.  It accepts an arbitrary list of values, rather than
assuming that values occur in a contiguous sequence.  When Map uses
FixedHashTable for GID-to-LID lookups, the LIDs (the values in the
table) occur in a contiguous sequence, so there is no need to accept
an arbitrary sequence of values.  For this application in Directory,
FixedHashTable needs to take an arbitrary list of values.
FixedHashTable works fine in this case; it just needed a one-line
change to initialization.  For now, I've duplicated the initialization
code in FixedHashTable for both cases.  It would be nice sometime to
factor out the common code from the two initialization cases.
Tpetra: CrsGraph: globalAssemble: Enhanced error message.

I've improved the error message when globalAssemble encounters rows
that are not in the row Map on any process.  This is meant to help
Stefan Domino with Nalu development.
Tpetra: Fixed shadowing declarations

Build/Test Cases Summary
Enabled Packages: Tpetra
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=56,notpassed=0 (3.93 min)
3) SERIAL_RELEASE_SS => passed: passed=43,notpassed=0 (2.31 min)
Other local commits for this build/test group: 52ef400, c159ca6
Kokkos : UQ/Ensemble hybrid parallel CG-solve miniapp, fix deep_copy for subviews, allow 'operator()' to have extra unused indices.

Allow View::operator() to have extra ignored integer arguments so that
computations can be generalized to the maximum rank with minimum
performance penalty.

Initial testing of hybrid parallel CG solve of UQ/ensemble linear system
where the sparse matrix graph is shared and the matrix and vector
values are ensembles.