harden to nulls, these changes are made in the nodes, not the algorithms since these should FAIL when passed nulls.
remove nulls from all node overloads
unify output of all nodes to return List<List<Surfaces>> instead of some returning polysurfaces