WIP: Refactor IO and associated interfaces so bitmap, observer, and *Lookup interfaces can use the same IO implementations.