Draft: Add support for using VECGHOST with DMPLEX
The code is seemingly complete. Ready for review to see if the API makes sense or needs work.
Review by commit
VecGhost is extended to support local variables that are not in the global vector (Matt's approach to handling Dirichlet boundary conditions)
Optionally reorders the ordering of the unknowns to put the ghost values after the interior with DMPLEX, provides a command line option to switch to this ordering and use VecGhost to avoid need for local copies in global to local and local to global
Switched DMNETWORK to completely use the VecGhost approach and changed on DMNETWORK example to use DMGlobalGetLocalBegin/End()