Got solids cutting correctly.

There was an issue with creating a solid from a set of faces, when you
used that solid to cut other solids. My only guess after research is that
it had to do with the direction of the faces, either determined by
the way the edges were set into the face or something else.

The solution is to find the minimum bounding solid for the set of faces,
then expand each face and make a solid in the correct direction, which you
use to cut the initial block. This requires supplying a directional norm vector
for the plane of the face; when making a SolidFace you just have to pass in
a point that lies on the correct side of the 3D space partitioned by the face plain.