Plex section permutation

Instead of re-building wrongly numbered sections we now build only one Plex-based global renumbering, which gets inherited by all sections when building FunctionSpaces. This enables certain performance optimisations and allows us to use PetscSection objects more natively in the future.

Note: This merge requires updates from latest petsc-master and petsc4py-master.