Tpetra: MultiVector: Improved public docs of update() and scale().

The documentation of these methods now explain when it is OK for input
arguments to alias the output argument.
Tpetra: Added "fixed" hash table implementation with "CSR" storage.

Christian Trott pointed out to me today that Map's hash table has a
structure just like that of a sparse graph.  All of its (key,value)
pairs are added at once, at Map creation time, and never removed or
changed.  This means we can use "compressed sparse row" (CSR) storage
for the hash table.  This storage format uses a single allocation for
all the (key,value) pairs, rather than a separately allocated bucket
for each (key,value) pair (or an "array bucket" for all (key,value)
pairs that map to the same hash table entry).  This should speed up
hash table creation time, and improve locality of lookups.

The new Tpetra::Details::FixedHashTable class implements this
"fixed-structure" hash table.  This class uses large parts of
Tpetra::Details::HashTable, including the hash function(s) and the
choice of table size.  I have not yet added the new hash table to
Tpetra::Map, but doing so should be straightforward.

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=54,notpassed=0 (2.10 min)
3) SERIAL_RELEASE_SS => passed: passed=43,notpassed=0 (8.59 min)
Other local commits for this build/test group: 63666d9
Tpetra: fixing compiler warning

Build/Test Cases Summary
Enabled Packages: Tpetra
Disabled Packages: MOOCHO
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=584,notpassed=0 (40.96 min)
1) SERIAL_RELEASE => passed: passed=549,notpassed=0 (17.78 min)
2) MPI_SS_DEBUG => passed: passed=277,notpassed=0 (17.14 min)
Fixing generation of headers for explicit instant system for subpackages

While doing othe work, I noticed that the auto generated templated headers
Thyra_XXX.hpp would always getting generated for implicit instantation even
when explicit instantation was turned on for Thyra.  I looked into this and it
seems the problem was that the logic was broken for template files in
subpackages.  What that means is that this Thyra code was always getting
generated multiple times, both explicitly and implicitly.  That would jack up
compile and link times.

Fixing the problem was easy.  I just had to change the logic to set
PARENT_PACKAGE_NAME_UC correctly and use
HAVE_${PARENT_PACKAGE_NAME_UC}_EXPLICIT_INSTANTIATION from the parent package
(where is the only place it will be defined).

I can't believe I did not notice this when I converted Thyra to subpackages a
long time ago.  How terrible!
Adding missing headers due to explicit instant working again.

When you turn on explicit instantiation (for real) a bunch of headers in
XXX_def.hpp files are no longer seen by clients through the XXX.hpp file.
Same on clients for using something they are not explicitly including headers
for.
Adding missing TRIBITS_ADD_EXPLICIT_INSTANTIATION_OPTION() in top level cmakelists file

Packages that use explicit instantation must call
TRIBITS_ADD_EXPLICIT_INSTANTIATION_OPTION() in top-level CMakeLists.txt file.
I suspect that the absense of this was making OptiPack and GlobalPack not
really use explicit template instantation.
Adding missing headers from explicit instantiation (SQUASH AGAINST OTHER thyra commit)
Adding missing headers due to Thyra being properly explicitly instantiated now.
Adding missing headers due to Thyra being properly explicitly instantiated now.
Adding release notes for TriBITS

Added note about fixing explicit instantiation header file generation.
Adding release notes for fix of Thyra_XXX.hpp generation for explicit instantation
Adding missing headers due to Thyra being properly explicitly instantiated now.
Disabling PyTrilinos if not enabled and BUILD_SHARED_LIBS=OFF

This logic is similar to logic that exists for ForTrilinos and TriKota.  If
Fortran is not enabled, then ForTrilinos is turned off.  In that case, it is
hard turned off, even if ForTrilinos was explicitly enabled.  That is likely
bad that if you explicitly turn on ForTrilinos but don't have Fortran then it
will implicity disable ForTrilinos but that is how we did this.

In the case of PyTrilinos, we only disable it if it is not already enabled and
BUILD_SHARED_LIBS is off.  If PyTrilinos is explicitly enabled then PyTrilinos
will fail to configure, just as it did before so we maintain backward
compatibility.  I can't see how a user would be upset

In general we need to make it so that Trilinos configures in a more inteligent
way for large sets of package, especially in automated testing.  We need to
put in this type of logic for more packages likely.  Note that if "shared
libs" was treated as a TPL in the TriBITS system (not saying that we should),
then PyTrilinos would be auotmatically disabled unless "shared libs" was
enabled.  A change like this just makes that behavior a little more
consistent.
Adding missing headers due to Thyra being properly explicitly instantiated now.
Allow TriBITS to unenable enabled packages

This is needed, for example, because if you change Panzer and try to run the
serial build, it will error out at configure time unless you set this.

Build/Test Cases Summary
Enabled Packages: TrilinosFramework, Anasazi, GlobiPack, NOX, OptiPack, Panzer, Teko, Thyra, ThyraEpetraAdapters, ThyraCore
Disabled Packages: MueLu
Enabled all Packages
0) MPI_DEBUG => passed: passed=1452,notpassed=0 (24.63 min)
1) SERIAL_RELEASE => passed: passed=1447,notpassed=0 (10.11 min)
2) MPI_DEBUG_SS => passed: passed=1880,notpassed=0 (41.64 min)
3) SERIAL_RELEASE_SS => passed: passed=1761,notpassed=0 (15.13 min)
Other local commits for this build/test group: 61d091a, 7163d0f, 2f8b0eb, 4240211, 9a8b3f4, a6d582f, 2dc552b, ca0d402, bd4980e, 12cf214, 8e8aa72
MueLu: replaced static_cast by Teuchos::as for integers
MueLu: updated python aggregate visualization script for subcomms

When we use subcomms, the number of processors dumping aggregates
dwindles down on coarser levels. The original script did not know how to
deal with that and just did not visualize coarse aggregates.
Zoltan2: MJ: Distributor object.
Merge branch 'master' of software:/space/git/Trilinos
Tpetra: Map: Moved #include "Tpetra_HashTable.hpp" into *_def.hpp.

It often reduces compilation time to use a forward class declaration
(for fields of a class only declared by pointer) rather than including
the class' header file.  I've done this for Details::HashTable in Map.