restrict to convex faces

We so support non-convex polyhedra, as they may occur in physical applications. However, there is no need for us to support non-convex faces because users may emulate them as a union of convex faces. Restricting acceptable input to convex faces allows for a number of simplifications in our algorithms.

To do:

  • In the Face constructor, test for convexity.
  • Review all face related code whether there are opportunities for simplification.