use client number as tag
replicated readDataPipelineFifo per client
combine client-specific response handling into per-client rule
cleanup mkMemReadInternal a bit
pipeline mkMemWriteInternal writeData