Fixes a regression that appears when running on GDAL >= 3.11.
The S1/S2 reprojection warped with dst_nodata=0. GDAL >= 3.11 (gdal#13677) bumps any valid pixel whose resampled value equals dst_nodata to ~1.4013e-45 (and logs a CPLE_AppDefined warning ~1000×/min in multi-band warps). Because sentle uses an exact == 0 NoData sentinel downstream, those bumped values leaked past every NoData/cloud mask — under-masking NoData and dropping clear pixels as cloudy.
Fix: reproject through reproject_util.reproject_nodata_zero, which warps with dst_nodata=NaN (no collision, no bump, no warning) and normalizes the fill back to 0. Output is byte-identical to the old dst_nodata=0 path on GDAL < 3.11, so this is fully backwards compatible.
Adds regression tests for the helper (legacy-equivalence + no-bump invariant) and the downstream NoData/cloud/count masks (PR #63).