Port SmUnbendVolume (29 fns plus the component constructor) into
surface::unbend_volume, with its shim, ffi wrapper, difftest runner and
374 edge-case fixtures. Wire the unbend overrides into the Volume
dispatch (VolumeKind::Unbend now carries the members).
Co-port SmVolume::EvaluatePoint (Volume::evaluate_point) and
SmVolume::IsPointInParamDomain from surface.volume_p2, and point the
SmCrvInVolume::EvaluatePoint stub at the former.
difftest: 1874 cases, 1807 bit-identical, 67 deferred
(surface.surface_p8 66, surface.volume_p2 1); 30,374-case run clean;
--perturb SENSITIVE. surface.volume_p1 deferred 39 -> 2;
curve.crv_in_volume surface.volume_p2 deferred 33 -> 1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>