Allow Ifpack Cheby calculate eigenvalue estimate.

If the user doesn't supply an estimate, let Ifpack calculate an estimate of the max eigenvalue.
This makes Ifpack and Ifpack2 more consistent.

Build/Test Cases Summary
Enabled Packages: Ifpack, MueLu
Disabled Packages: MOOCHO
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=413,notpassed=0 (19.69 min)
1) SERIAL_RELEASE => passed: passed=390,notpassed=0 (6.15 min)
2) MPI_SS_DEBUG => passed: passed=124,notpassed=0 (3.11 min)
Epetra,Teuchos,Kokkos,Tpetra: Fixed some compiler warnings.

Tpetra now builds clean with Clang 3.2 "-Weverything -std=c++11"
(the language specification is necessary to avoid warnings on the
language extension "long long", which is part of C++11).  I haven't
systematically gone through Epetra, Teuchos, or Kokkos in this commit,
but I did fix warnings in all of them.

Teuchos memory management classes turned out to need a bit of work to
build clean of warnings.  In particular, there were silent size_type
to int conversions for debug code ("assertIndex") which were not 64-bit
clean.  This could affect debug checks for very large arrays.  Fixing
them only required interface changes to private methods, so the fix
should not affect user code.

Note that different compilers warn on different things.  I've added
internal documentation of a case where it might not be possible to
please both the Intel compiler and Clang.  I favored the existing
fix for the Intel compiler warning in that case.

Clang 3.2 has the nice feature that it warns on HTML errors in Doxygen
documentation, such as HTML tags that aren't closed.  I took advantage
of this to fix some bugs in the documentation of the Teuchos memory
management classes.  This should improve the generated HTML output.
Tpetra: Fixed explicit instantiation link errors in example.

The example probably broke when I introduced explicit instantiation
into DistObject.  The example looks like it might be new, since I
didn't get those errors immediately after my changes to DistObject.

The link issue was that the explicit instantiation of MultiVector
that the example needs to do now requires an explicit instantiation
of the subclass of MultiVector, namely DistObject.

Build/Test Cases Summary
Enabled Packages: Epetra, KokkosClassic, TeuchosCore, Tpetra
0) MPI_DEBUG => passed: passed=153,notpassed=0 (1.65 min)
1) SERIAL_RELEASE => passed: passed=147,notpassed=0 (14.80 min)
Other local commits for this build/test group: f887c91
Kokkos: DefaultNode: Changed the default Node type to SerialNode.

We were getting a lot of complaints about this.  We had left it the
way it was for as long as we did, because we wanted users to get
hybrid parallelism by default.  However, people are doing a lot of
performance tests now, and it's confusing that people who let Tpetra
pick the Node type (thus, the default type) are getting different
performance results than people who specify SerialNode as the default
Node type.

From now on, if you want (CPU) threads within an MPI process, you
need to specify TPINode, OpenMPNode, or TBBNode explicitly as the
Node type.  I've left the include files for all of these in
Kokkos_DefaultNode.hpp, so users won't have to add include files.

Build/Test Cases Summary
Enabled Packages: KokkosClassic
0) MPI_DEBUG => passed: passed=20,notpassed=0 (1.28 min)
1) SERIAL_RELEASE => passed: passed=18,notpassed=0 (2.26 min)
TrilinosCouplings:  Change Belos drivers to use ICGS to match AztecOO.
 Moving the initializations for the static integral constants
  into the class declaration in Amesos2. Initializing them outside
  combined with template meta programming confuses Intel compilers and
   results in compile time errors.
Merge branch 'master' of software.sandia.gov:/space/git/Trilinos
Teuchos: Comm: ireceive() and send() now take an optional tag argument.

The Comm interface gives no way to specify the 'tag' argument of many
different MPI functions.  It's helpful for debugging and encapsulation
of Tpetra components to expose the tag argument, so that we can
distinguish messages coming from different components.  (For example,
this will help us catch bugs in Tpetra::Distributor where messages
from one Distributor's doPosts() call might be "crossing over" into
another Distributor instance's doPosts() call, because the method
doesn't send and receive correctly.)

This commit adds versions of ireceive() and send() to the Comm
interface, to its implementations SerialComm and MpiComm, and to the
"CommHelpers" nonmember functions.  The versions take a 'tag' argument.
These new functions also restore the correct order of arguments as in
the original MPI functions (buffer first, communicator last), which
conveniently also helps the compiler distinguish them from the original
ireceive() and send().

Note that the new methods override MpiComm's current behavior, namely
using an internal tag to distinguish between different MpiComm
instances.  (See Bug 5740 for discussion of why that is a bad idea.
I would have changed this last fall, but I think I recall that the
Zoltan2 developers had trouble when I changed MpiComm in that way,
so I reverted the change.)

Build/Test Cases Summary
Enabled Packages: Teuchos, Kokkos, Tpetra
0) MPI_DEBUG => FAILED: passed=163,notpassed=2 => Not ready to push! (1.23 min)
1) SERIAL_RELEASE => passed: passed=151,notpassed=0 (0.08 min)
WARNING: Forced the push!
Refactoring toward improved extensibility for layouts (e.g., tile, blocks)
and memory access specializations (e.g., texture cache).

Increment: Remove 'Stride' from the Shape.
increment: Remove 'Layout' from Shape template and cleaning of Shape class.
Updated interface between KokkosArray and embedded array data type.
Consolidate view trait information into 'ViewTraits' class.
Moving subview construction code out of the View class
toward moving subview construction to free functions.
Remove deprecated 'Impl::SubShape' class.
Shrinking the View header and shifting more implementation to
the Impl::ViewAssignment class.
Only managed views can be allocated.
Consolidate create_mirror functionality into ViewAssignment.
Move View equality and inequality operators out of the class.
Move subview construction from View constructors to 'subview' free-functions.
Change 'static const unsigned' Shape members to 'enum' so that
debug builds do not have unresolved symbols for those members.
Move tile subview construction to subview free-function.
Eliminate "back door" constructors from View class.