Create Primitive-enum wrapping each of the Shapes and pass the Primitive around instead of a Boxed Shape
Fix failing tests
Implement Shape for Primitive, making it possible to abstract Poly and Sphere at a higher level
Remove Prim-prefix from Primitive-enums
Remove duplicate code in intersection-loop