PCIS: add support for sbaij matrices

pc->mat should be pc->pmat.
PCBDDC: added field in bddc data struct to determine if fields splitting has been provided by the user

Initialization of number of field splits was missing. Now fixed
PCBDDC: bddc now works with sbaij matrices.

This is a partial solution, since in practice the Neumann problem matrix will always be seqaij

Implemented user switch for field split
PCBDDC: updated man pages
PCBDDC: updated bddc example with sbaij matrix type
DMPlex ex4: Fixed 2D hybrid simplex tests
Wrapped math.h and quadmath.h functions used in petsc source exempting examples
PCBDDC: updated todo list

added a further guard before calling SVDs
PCBDDC: index set for R nodes now stores block size information

When IS block size is equal to Mat block size, there's no need to convert local matrices anymore
Merge branch 'jed/avoid-getpwuid'

The file path routines were broken because the current directory was
placed in front of the given path before checking for leading ~ or
~user. This is now fixed, along with the removal of getpwuid (a
liability on BG/Q and Cray). We still attempt to use getpwnam when
encountering ~user.

* jed/avoid-getpwuid:
  Sys ex13: avoid non-portable realpath(1) in verification test
  cleanup includes that are no longer needed. Also remove check for _fullpath() as the corresponding code is removed.
  Sys: fix PetscGetFullPath expansion of ~ and ~user, ensure NULL termination
  Sys: avoid getpwuid in file path routines
  Sys: add failing test expanding ~/file-name and ~user/file-name

Conflicts:
	config/PETSc/Configure.py
Merge branch 'jed/options-insert-bcast-bgq'

Attempt to work around BG/Q MPI_Bcast bug.  It is unknown whether it is
successful, but this uses fewer communications so it should not be worse.

* jed/options-insert-bcast-bgq:
  PetscOptionsInsertFile: combine Bcasts for alias and values
makefile: fix path to interfaces directory
Merge branch 'jed/makefile-recurse-dirs' into next

* jed/makefile-recurse-dirs:
  makefile: fix path to interfaces directory
Merge branch 'jed/dmvecmattypes-stdcoords'

* jed/dmvecmattypes-stdcoords:
  DMPlex: use VECSTANDARD for coordinates
Merge branch 'jed/datafiles-inherit'

* jed/datafiles-inherit:
  config: only define DATAFILESPATH for non-null value
Merge branch 'jed/avoid-getpwuid' into maint

 The file path routines were broken because the current directory was
 placed in front of the given path before checking for leading ~ or
 ~user. This is now fixed, along with the removal of getpwuid (a
 liability on BG/Q and Cray). We still attempt to use getpwnam when
 encountering ~user.

* jed/avoid-getpwuid:
  Sys ex13: avoid non-portable realpath(1) in verification test
  cleanup includes that are no longer needed. Also remove check for _fullpath() as the corresponding code is removed.
  Sys: fix PetscGetFullPath expansion of ~ and ~user, ensure NULL termination
  Sys: avoid getpwuid in file path routines
  Sys: add failing test expanding ~/file-name and ~user/file-name

Conflicts:
	config/PETSc/Configure.py
Merge branch 'jed/options-insert-bcast-bgq' into maint

Attempt to work around BG/Q MPI_Bcast bug.  It is unknown whether it is
successful, but this uses fewer communications so it should not be
worse.

* jed/options-insert-bcast-bgq:
  PetscOptionsInsertFile: combine Bcasts for alias and values
Merge branch 'jed/fix-mat-sbaij-sor-prefetch' into maint

* jed/fix-mat-sbaij-sor-prefetch:
  Mat SBAIJ: avoid invalid memory read in MatSOR_SBAIJ
Merge branch 'barry/fix-dgmres.c' into maint

* barry/fix-dgmres.c:
  KSPDGMRES: fix conditional variable declarations
Merge branch 'jed/attribute-deprecated-compat' into maint

Fixes error encountered when using Intel compiler and changing gcc on
PATH between configuring PETSc and building an application.

* jed/attribute-deprecated-compat:
  config: avoid string argument to __attribute((deprecated))