Refactored intersection code to make it clearer, and use the Polygon
class for more reliable paritioning of complex face intersections. Will
also enable intersections with coincident planes.