Make GetStatesOfAdjacentFaces() non-recursive
Add a new method BOP_SolidSolid::DoEdgesAdjacentFaces

This method computes the list of adjacent faces of all edges.
It was previously computed by GetAttachedFaces, which iterated over all faces.

THIS IS A WORK IN PROGRESS, MOSTLY UNTESTED