Merge branch 'rmills/dm-localtolocal'

Introduces DMLocalToLocalxxx() (and deprecates DMDALocalToLocalxxx()) to
support local-to-local communication operations for any DM type, not just
DMDA.  Adds DMShell routines to set up local-to-local operations.
Merge branch 'hzhang/fix-tests'
implement MatGetRedundantMatrix_MPIAIJ_interlaced() to simplify and replace MatGetRedundantMatrix_MPIAIJ
add 'type' to struct _n_PetscSubcomm
rm mlocal_red from MatGetRedundantMatrix()
set defaults in PetscSubcommCreate()
rm container from MatGetRedundantMatrix_MPIAIJ()
make src/mat/examples/tests/ex9.c as a test for MatGetRedundantMatrix()
MatGetRedundantMatrix_MPIAIJ_interlaced() should work for non-square matrix
optimize PCApply_Redundant() in the case !useparallelmat
cleanup PCSetUp_Redundant()
cleanup PCSetUp_Redundant(); add tests for PCRedundant
bugfix
add PetscSubcommView()
add small comment
implement MatGetRedundantMatrix for psubcomm_type CONTIGUOUS; rename MatGetRedundantMatrix_MPIAIJ_interlaced to MatGetRedundantMatrix_MPIAIJ_psubcomm
add PetscSubcommSetFromOptions(); PCRedundant can swith to PETSC_SUBCOMM_CONTIGUOUS at runtime
cleanup
update PetscSubcommSetTypeGeneral() - rm input duprank
trivial cleanup
better error display