generic interface for normal_vector, added unproject method for performing inverse projection using a plane_to_2d_projector
renamed extract_hull -> extract_boundary