Variable downgradeNonWatertightConst

downgradeNonWatertight: Fix = ...

Auto-fix for GEOMETRY_NON_WATERTIGHT — flips a SceneGeometry's primitive from SolidPrimitive to SurfacePrimitive. The inspection has already proven the geometry isn't a closed manifold, so the solid claim is wrong; surface is the honest label and downstream pipelines (back-face culling decisions, BVH closed-cell containment, IFC inside / outside) get correct semantics.

Index stride and per-vertex requirements are the same for both primitives — the change is purely semantic. Mutates primitive in place via typed cast (same pattern the rest of the geometry-fix family uses for indices / *Compressed).

Idempotent: returns {fixed: false} when the geometry is already SurfacePrimitive (or any other primitive).