refactor(turbo-persistence): encapsulate storage backings
Move mmap/file selection, index storage, raw block reads, caching, checksum handling, and Arc/Rc ownership conversion behind the existing lookup and iterator backing types. Common lookup and iteration algorithms no longer branch on the backing variant.
Compile BlockRef::Mmap out whenever the mmap feature is disabled, using a zero-sized PhantomData marker to retain the backing lifetime. Keep the distinct Arc lookup and Rc iterator ownership paths.
Canary's mmap feature already selects file-backed access for WASI; this layer preserves that general policy rather than reintroducing target-family gates.
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>