First time contributor and c coder, so let me know if I'm doing this wrong.
This revision exposes the face sets to python is the same way that face maps are exposed.
For testing the face sets in python:
```python
import bpy
import bmesh
# Get the active mesh
me = bpy.context.object.data
# Get a BMesh representation
bm = bmesh.new() # create an empty BMesh
bm.from_mesh(me) # fill it in from a Mesh
fs = bm.faces.layers.face_set.verify()
for face in bm.faces:
face_idx = face.index
set_idx = face[fs]
print(f"face {face_idx}, set {set_idx}")
```