Either kind of redb transaction — lets a function that only ever reads
(.get()/.iter(), never .insert()/.remove()) run against a real
WriteTransaction (the crash-safety boundary for a write statement) or
a ReadTransaction (so a read-only statement doesn’t have to contend
for redb’s single-writer lock at all). WriteTransaction/
ReadTransaction share no common trait in redb itself — open_table/
open_multimap_table are inherent methods on two unrelated structs,
returning different concrete types (Table/ReadOnlyTable,
MultimapTable/ReadOnlyMultimapTable) — so this (and TableHandle/
MultimapTableHandle below) is a small local abstraction over that,
not something redb provides.