Generalize DistributedMeshSynchronizer for faces

If possible, for any subentity topology.

First, faces have to be assigned an owner subdomain. A hypothesis is that this can be done by checking if all subvertices are local (thanks to the way we assign an owner subdomain to vertices).