DMPlex ex4: Added 3D test
- Currently fails
DMPlex: Moved refinement functions into new file
- Reorganized DMPlex header
DMPlex: Added DMPlexEqual() and DMPlexUninterpolate()
- These will be needed for testing refined meshes
DMPlex: Fixed some function names to cleanup the refinement file move
DMPlex: Small cleanup fo refinement code before we add tetrahedral stuff
DMPlex: Added DMPlexGetSupportSection()
DMPlex: Fix for DMPlexUninterpolate()
DMPlex: Made DMPlexGetFaces_Internal() non-static, and added DMPlexRestoreFaces_Internal() and DMPlexGetRawFaces_Internal()
- This is a nice way to get the canonical face orientations
DMPlex ex4: Added a 3D refinement test
- Also removed the need to have a hybrid mesh
DMPlex ex4: Added tests for mesh symmetry and point orientations
DMPlex: Added code for 3D uniform refinement
- The dreaded monster checkin
DMPlex: Now DMView_Plex() uses the DM name
DMPlex: Fix array restore in DMPlexGetFaces_Internal()
DMPlex: Fix check in refinement for tet face edges that intersect the cross-tet edge
- My re-interpolation test still does not work
DMPlex ex4: Had to turn off re-interpolation check for uniform refinement
DMPlex: Add plexrefine.c to makefile
DMPlex: Fixed view
Merge branch 'master' into knepley/feature-plex-refine-3d

* master: (273 commits)
  Mat ex170: Comments
  VTK: Small fix to error message (.vts to .vtu)
  VTK: Small fix to error message
  Fixed bib entries
  Bib: Updates
  AO: fix erroneous processing of -ao_view and factor into AOViewFromOptions
  doc: fix named argument in {Vec,Mat,DM}ViewFromOptions
  Sys: add PetscDataTypeFromString() and test code
  Mat: Should say that it has a nullspace in MatView()
  parms: update tarball with fix for namespace conflict with metis
  fix citation 'Golub_Varga_1961'
  parmetis: update tarball to parmetis-4.0.2-p5 which fixes an install issue with cygwin
  Sys Logging: revert parent traversal
  fixed hdf5.py so that if self.libraries.compression is None the code still runs correctly
  DMDA: fix bad cast of DM_DA to PetscObject
  MatClique: follow DistMultiVec API changes
  MatClique: remove unused variables
  config cmakeboot: add C++ flags any time compiler is available
  config OpenMP: check for C++ flag any time the compiler is available
  replaced all left-over uses of a single PetscMalloc() to allocated multiple arrays: replaced with PetscMallocN() The only ones left are when the second array is set into the first array and one ugly usage in the MUMPS interface that cannot be easily fixed
  ...

Conflicts:
	include/petscdmplex.h
DMPlex: Fix array length
DM: Fixed initialization
- Sys because we use PetscContainer internally