Data layer shared by training and inference.
The key design choice in this crate is that both dense and sparse storage are
exposed through the same [TableAccess] trait. Trainers therefore reason
about "rows, features, bins, and targets" instead of about concrete storage
formats. That keeps sampling views, inference-time reconstructed tables, and
Arrow-backed tables interoperable.