Refactored some code, moved things out of Beam3D and Primitives3D that are really more general 2D utility functions, such as Sutherland Hodgman clipping