The FIFO queueing between DenseStorageWriter and DenseStorageReader is needlessly complicated. We can:
- Reduce the number of logical queues between them from 3 to 2
- Implement queue logic directly rather than delegating to the generic
QueueWriter and QueueReader.
Doing the logic directly makes the code much simpler and perhaps even more efficient.