Tpetra::MultiVector: Refactored common code from norm{1,2,Inf}.

This commit only affects the Kokkos refactor version of Tpetra.

In order to help me debug the outstanding Kokkos::subview issue, I
refactored out all the common code (in particular, construction of
subviews depending on whether the MultiVector has constant stride)
from norm1(), norm2(), and normInf() into a new private method
normImpl().  The issue remains, but at least now there is less code to
test and fix.
Tpetra: Revised MultiVector unit test to help me debug subview issue.

Build/Test Cases Summary
Enabled Packages: KokkosCore, KokkosCompat, KokkosContainers, KokkosLinAlg, KokkosAlgorithms, KokkosMpiComm, KokkosExample, Tpetra
Disabled Packages: FEI,Moertel,MOOCHO,NOX,Rythmos,STK,Phalanx,PyTrilinos,CTrilinos
0) MPI_DEBUG => passed: build-only passed => Not ready to push! (0.22 min)
1) SERIAL_RELEASE => passed: build-only passed => Not ready to push! (4.35 min)
2) MPI_DEBUG_KOKKOS_REFACTOR => passed: build-only passed => Not ready to push! (7.32 min)
3) SERIAL_RELEASE_KOKKOS_REFACTOR => passed: build-only passed => Not ready to push! (11.35 min)
Other local commits for this build/test group: 384f947
WARNING: Forced the push!
Update trilinos-test2 compilers to gcc 4.7.2
Fix path issue with new compilers on trilinos-test2
Teuchos: Whitespace change to force a continuous build
Add more specific header file for pamgen.
Conflict discovered in Forte build.
EpetraExt, Intrepid: Changes for C++11 in Clang

Added static casts in EpetraExt_HDF5.cpp to address compile
errors.

Eliminate "register int" warnings in Intrepid.

Build/Test Cases Summary
Enabled Packages: EpetraExt, Intrepid
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=151,notpassed=0 (8.35 min)
1) SERIAL_RELEASE => passed: passed=153,notpassed=0 (15.66 min)
2) MPI_RELEASE_SS => passed: passed=151,notpassed=0 (4.45 min)
Kokkos: Add more C++11 function matchine signatures for 'init', 'join', and 'final' functions of a reduction functor.

Fix 'implicitly derefenced' warning message with 'operator+=' with volatile types by removing return volatile reference.
Fix unmatched 'init( volatile value_type & )' function with C++11 function matching by changing to 'init( value_type & )'.
KokkosMpiComm:  Add a few overloads for broadcast().
Sacado:  Add optional dependency on KokkosMpiComm.
Sacado:  Add Fad overloads for Teuchos::broadcast() when using views.
Sacado:  Add missing KOKKOS_INLINE_FUNCTION macro.
Sacado:  Fix crazy build warns when buildig with nvcc_wrapper.

The nvcc_wrapper was complaining that the number of expression arguments
was an unused variable, even though it clearly was.  I changed the code
so the variable isn't created, which saves a huge number of warnings.
Sacado:  Add view spec unit test to test Roger's corner case.
split example into header and driver. Improved documentation
Tpetra::MultiVector: Disabled temporary debugging code.

This commit only affects the Kokkos refactor version of Tpetra.
Tpetra::MultiVector::putScalar: Now respects DualView last modified.

This commit only affects the Kokkos refactor version of Tpetra.

In order to support hardware with two memory spaces, one of which is
larger (but possibly slower) than the other, MultiVector needs to
implement DualView semantics more carefully.  In particular,
MultiVector methods that modify data should prefer only to touch data
in the last modified memory space.  This commit fixes putScalar so
that it does just that.
Tpetra: Got ReplaceLocalValues test to pass, through some trickery.

With the Kokkos refactor version of Tpetra enabled, with Tpetra's
default Node type set to Kokkos::Compat::KokkosSerialWrapperNode, and
with the OpenMP device apparently enabled (though not explicitly in
the build configuration!), the CrsMatrix_ReplaceLocalValues test was
failing with an exception.  The exception claims that some code is
calling parallel_for on the Kokkos::OpenMP device, without that device
having been initialized.  This is a bit weird because the default Node
type in this case should _only_ use the Kokkos::Serial device; it
should not use the OpenMP device at all.  Furthermore, the Map
constructor should be creating the Node instance, and that should
trigger device initialization.

I was able to make the test pass by letting it build and run for _all_
enabled Node types, not just for the default Node type.  This must
have something to do with the order in which Node types are
initialized.  I added some checks to the test for whether that device
and others are initialized, but the checks didn't help me catch the
issue.  The test is better off exercising all Node types anyway, so I
will leave it in place.
Tpetra::MultiVector: scale now respects DualView last modified site.

This commit only affects the Kokkos refactor version of Tpetra.

The single Scalar argument version of MultiVector::scale() now
respects where the MultiVector's data where last modified, in the
DualView sense.  If they were last modified in the "device" memory
space, execution happens on device; if they were last modified in the
"host" memory space, execution happens on the host.

Build/Test Cases Summary
Enabled Packages: KokkosCore, KokkosCompat, KokkosContainers, KokkosLinAlg, KokkosAlgorithms, KokkosMpiComm, KokkosExample, Tpetra
Disabled Packages: FEI,Moertel,MOOCHO,NOX,Rythmos,STK,Phalanx,PyTrilinos,CTrilinos
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_KOKKOS_REFACTOR => passed: configure-only passed => Not ready to push! (0.92 min)
3) SERIAL_RELEASE_KOKKOS_REFACTOR => passed: configure-only passed => Not ready to push! (0.86 min)
Other local commits for this build/test group: d2d605d, 823b171, fdc28c3
WARNING: Forced the push!