As a Factory, WALFactory should only have one job: creating instances of WALProvider.
However, over the years, it has been a landing place for lots of wal-related methods (e.g. constructing readers, WALEntryStream, and more). We want all of this to live in the WALProvider.
We can do this in two steps: have the WALFactory methods invoke the method on the WALProvider (handled elsewhere), then here we can replace usage of the WALFactory "wrapper methods" with the WALProvider itself.