This adds a cache to read a normal vector for a plane that (roughly) fits a curve. If the curve lies on a plane, the vector always point along this plane normal, otherwise it's an approximation. The cache is lazily calculated and invalidated when the positions are tagged for a change.