(#3251) - add read queue to avoid leveldb corruption

With these tests I can reproduce the LevelDB race condition where it starts reading before a batch and ends reading after a batch. It only fails for `get()` and `allDocs()` - `changes()` seems fine for some reason.