Plex optimisation, part 2

This merge optimises the remaining loops related to the DMPlex migration by utilising the PETSc C interfaces, making mesh generation in Firedrake reasonably fast.