PCGAMG: set subtype in PCSetFromOptions_GAMG instead of PCCreate_GAMG
PCGAMG: move subtype pointers to _PCGAMGOps.

Avoid stomping on user subtype preference in PCSetFromOptions_GAMG.

Subtype function pointers are now cleared by PCGAMGSetType to avoid
lingering from the last type in cases where not all pointers get set.
Also store the type name to help with debugging and diagnostic output.
PCGAMG: call subtype destroy from PCDestroy_GAMG

Having the subtype call the parent is more fragile because the
delineation of responsibilities is less clear and the call order could
be different for different subtypes.
TSGetAdapt: restore name from TSGetTSAdapt

This function was called TSGetAdapt in petsc-3.3 and was changed to
TSGetTSAdapt in:

  commit ad6bc4219076b084d4a49a29c04a77944f238f10
  Author: Barry Smith <bsmith@mcs.anl.gov>
  Date:   Sun Dec 9 18:14:24 2012 -0600

      My first TS restart just 8 million other changes needed PETSc!
      TSGetAdapt() changed to TSGetTSAdapt() because it gets a TSAdapt object, not an Adapt object
      added TSAdapt binary view and load

This rationale does not match the more established convention used by
functions such as the following.

MatGetInfo
MatGetColoring
MatGetNullSpace
MatGetLocalToGlobalMapping
MatGetLocalToGlobalMappingBlock (31 characters)
SNESGetConvergedReason
SNESGetSNESLineSearch: use auto Fortran binding
SNESGetLineSearch / SNESSetLineSearch: rename for consistency

This function was introduced as SNESGetPetscLineSearch, which matches no
established convention, then changed to SNESGetSNESLineSearch according
to the object name SNESLineSearch.  This is inconsistent with names such
as MatGetInfo, MatGetColoring, MatGetNullSpace, MatGetLocalToGlobalMapping,
SNESGetConvergedReason, and TSGetAdapt.

This is a change from petsc-3.3.
Removed DMAKKT source.
SNESGetSNESLineSearch / SNESSetSNESLineSearch: mark as deprecated (C interface only)
PCView: warn about incomplete information before PCSetUp
PCView_MG: avoid SEGV before PCSetUp
TS ex11: set field names and number of components
DMPlex: teach VTU output about field names and components

Schema is "${ObjectName}${FieldName}.${Component}".  For example

  SolutionDensity.0
  SolutionMomentum.0
  SolutionMomentum.1
  SolutionMomentum.2
  SolutionEnergy.0
MatMatTransposeMultNumeric_SeqAIJ_SeqAIJ: fix out-of-bounds memory access

Signed-off-by: Jed Brown <jed@59A2.org>
MatView_SeqAIJ_ASCII: fix out-of-bounds access when matrix has 0 rows

Signed-off-by: Jed Brown <jed@59A2.org>
MatRestoreRow: zero arguments after restore to catch accidental misuse

Explicitly pass NULL when we are intentionally using the number of
columns after restoring the row.
MatRestoreRowIJ/ColumnIJ: zero pointers to catch accidental misuse

Only zero in case where the operation is "done" so that user's
uninitialized arguments are not overwritten.  I don't know if it's
best, but this is consistent with done=FALSE meaning that the arguments
are not changed.

Explicitly pass NULL when intentionally using the number of rows after
restoring.
SF: define and work around missing MPI_COMBINER_DUP [reconfigure-needed]

A standards-compliant MPI cannot provide MPI_Type_get_envelope without
also defining MPI_COMBINER_DUP, because the latter is necessary to
interpret the results of the former.  However, a version of MPICH1 does
exactly this so we need a configure test and a workaround in the code.
SF: define MPIU_REPLACE to work around missing MPI_REPLACE
Fixed a bib entry
VecLoad: ugly hack to re-enable VecLoad_HDF5

It was disabled in parent commit.