I've finished updating the arc and circle constraints to use the new constraints structure and updated it for all shapes. Now, instead of saving all the individual points for a shape, we only save the shape index and retrieve the points using offsets.
You can find the changes here.
The only existing constraint that wasn't updated is PositionToCenter, which I'll rewrite as a OneShapeConstraintMapping instead of the current separate mapping. I will also add some more one shape constraints (line length, arc angle, arc radius, circle radius) and improve the way points are loaded for point related constraints. There is also a problem with one of the arc points that isn't repainted correctly after the constrained is applied.