Kokkos: DefaultArithmetic: Added CUDA magic thing for new kernel.

The new overwrite kernel for elementWiseMultiply() needed one of
the magic CUDA explicit instantiation macro invocations, otherwise
zan sends me autogrumpygrams.

Build/Test Cases Summary
Enabled Packages: Teuchos, Kokkos, Tpetra, Ifpack2, Belos, 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=286,notpassed=0 (6.13 min)
3) SERIAL_RELEASE_SS => passed: passed=267,notpassed=0 (1.80 min)
4) MPI_RELEASE_SS => passed: passed=286,notpassed=0 (4.44 min)
Tpetra: Removed CMake option for using std::unordered_map.

Tpetra::Map used to have an option for enabling use of
std::unordered_map instead of std::map for global-to-local index
lookups.  Siva made both of them unnecessary by implementing a
hash table, Tpetra::Details::HashTable.  Thus, I've removed the
now nonfunctional CMake option to enable std::unordered_map.  I
also edited internal comments in Tpetra::BlockMap to suggest that
in the future we should also replace std::map there with Siva's
hash table.

Build/Test Cases Summary
Enabled Packages: Teuchos, Kokkos, Tpetra, Ifpack2, Belos, 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=286,notpassed=0 (13.63 min)
3) SERIAL_RELEASE_SS => passed: passed=267,notpassed=0 (3.45 min)
4) MPI_RELEASE_SS => passed: passed=286,notpassed=0 (6.13 min)
Derive FactoryFactory from BaseClass.

This gives us access to timers, etc. that the rest of MueLu uses.
Added a time Monitor statement to ctor and SetParameterList so that we can
time this portion of MueLu.
Changing output message.

Instead of the message

   Warning: No factory has been specified for building

which might alarm users, I switched to the gentler

   Attention: No factory has been specified for building
Fixing XML reading to use only proc 0.

Using nice little Teuchos function to get proc 0 to read XML and broadcast the
parameter list to everybody else.

Build/Test Cases Summary
Enabled Packages: MueLu
Disabled Packages: MOOCHO
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_SS_DEBUG => passed: passed=83,notpassed=0 (9.42 min)
Other local commits for this build/test group: 4412a23, 36d58eb
Panzer: Fixed RCP circular dependency issue

If the response library is initialized using another response library,
this resulted in a circular dependency between RCPs.  While this never
affected the execution times or accuracy of our code, it did result in
not cleaning up memory properly during the shutdown phase.  Some
memory debugging tools can complain about this.  Building with debug
mode enabled, the RCP system reports all non-null references at
shutdown and in our case, it listed out 20,000 individual RCPs at the
end of each the run (even for a simple energy equation unit test).
This commit added a free() method that needs to be called on any
response libraries initialized with a separate response library from
your main driver.  No more rcp warnings!!!
1) Introduce MemoryRandomRead memory traits.  A View with constant
   data, in Cuda memory space, with MemoryRandomRead, using the
   Cuda v5 or better compiler, and using Cuda device 3 or better
   will have data access through a Cuda texture object.

2) Put the View::dimension(rank) method back in (by popular demand).

3) Restrict the 'standard' View specializations to be enabled
   only when 'value_type' == 'scalar_type'.

4) Refactor the 'View< Array<T,N> , ... >' specializaton
   (where T == scalar_type') to consolidate LayoutLeft and LayoutRight
   functionality.

5) Refactory the ViewSpecialization mapping to reduce the chances
   of an ambiguous mapping.
Query CUDA_VERSION from the <cuda.h> header and do not pass on the compile line.
Rythmos: Added virtual dtor to base class

Without this you get the warning below form gnu 4.7.2 compilers.

[100%] Building CXX object Drekar/drekar/driver/CMakeFiles/drekar_mp.dir/Drekar_Main.cpp.o
In file included from /home/rppawlo/Trilinos/packages/teuchos/core/src/Teuchos_RCP.hpp:58:0,
                 from /home/rppawlo/Trilinos/Drekar/drekar/driver/Drekar_Main.cpp:46:
/home/rppawlo/Trilinos/packages/teuchos/core/src/Teuchos_RCPDecl.hpp: In instantiation of ‘void Teuchos::DeallocDelete<T>::free(T*) [with T = drekar::ThetaStepperFactory<double>]’:
/home/rppawlo/Trilinos/packages/teuchos/core/src/Teuchos_RCPNode.hpp:539:13:   required from ‘void Teuchos::RCPNodeTmpl<T, Dealloc_T>::delete_obj() [with T = drekar::ThetaStepperFactory<double>; Dealloc_T = Teuchos::DeallocDelete<drekar::ThetaStepperFactory<double> >]’
/home/rppawlo/Trilinos/Drekar/drekar/driver/Drekar_Main.cpp:484:1:   required from here
/home/rppawlo/Trilinos/packages/teuchos/core/src/Teuchos_RCPDecl.hpp:985:33: warning: deleting object of polymorphic class type ‘drekar::ThetaStepperFactory<double>’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
Fixing mueprof to work with both T/Epetra.

Minor, tpetra was hardwired in.
Added warning if MaxTemplate is used with any solver other than NonGradient.  Also fixed class descriptions for NonGradient and SteepestDescent classes.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos

Build/Test Cases Summary
Enabled Packages: Piro
Disabled Packages: PyTrilinos,Optika,Sundance,Stokhos
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 (41.04 min)
3) SERIAL_RELEASE_SS => passed: passed=11,notpassed=0 (15.98 min)
Other local commits for this build/test group: 8672d5b
Added words about the proper use of the MaxTemplate class and other details related to the NonGradient class.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Enabling valgrind testing.
Piro: Simplified ExtensibleFactory implementation

Removed useless auxiliary type
Piro: Revised Provider constness

Allowed Provider functors to declare either a const or a non-const
interface.
Piro: Made SolverFactory more generic
Piro: Enabled customizable default provider

An ExtensibleFactory used to return a null pointer when no suitable
provider was found. This behavior is now customizable at run-time.
The implementation reuses the Provider concepts and machinery.

In addition, the new feature is exploited in SolverFactory to simplify
the common case where only one type of auxiliary object is required.
Piro: Removed hardcoded setProvider functions

The generic version of the function should be used instead.