Add "face-local" element iterators

This covers enough ghost elements for most purposes, doesn't require
expensive set construction like a node-local (semilocal) element
iterator does, and works without (broken on subdivision triangles,
expensive everywhere) inverse_map() to test node locations.
Compute constraints on facelocal elements