Rework shared queue for IpcIoFile, further optimize IpcIo notifications.
The patch implements a FewToFewBiQueue class that allows
communication between two group of processes. The queue is used
in IpcIoFile and allows to have a single shared queue reader
state for each process (both diskers and workers). This
continues the optimization started in r11279, see commit log for
more details.
The patch also decreases the number of shared memory segment used
by queues. Before the change, FewToOneBiQueue used
(2*workerCount + 1) number of segments. Now FewToFewBiQueue uses
just three: for shared metadata, for array of one-to-one queues
and for array of queue readers.