mount_overlay now tries kernel `mount -t overlay` first (needs root or
CAP_SYS_ADMIN), then falls back to fuse-overlayfs (works unprivileged).
unmount_overlay uses fusermount3 -u for FUSE mounts, umount for kernel.
OverlayMount gains an `is_fuse` field to track which backend was used.
The overlay integration tests now exercise the actual mount_overlay()
and unmount_overlay() Rust functions (via fuse-overlayfs on non-root),
verifying read-through, copy-on-write, and cleanup semantics.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>