It's helpful to make the separation of legacy data formats explicit,
because it clutters actively changed code less and makes it clear which
areas do not follow Blender's current design. In this case I separated
the MFace/"tessface" conversion code into a separate blenkernel
.cc file and header. This also makes refactoring to remove these
functions simpler because it's easier to find them.
In the future, conversions to the MLoopUV type and MVert
can be implemented here for the same reasons (see T95965).