ENH: sparse storage and data exchange for PstreamBuffers
- change the underlying storage from a numProcs list of buffers to a
Map of buffers. The reduced memory footprint on large systems is
on aspect but the primary motivation is to more easily support
sparse data exchange patterns.
The Map storage for PstreamBuffers corresponds to a non-blocking
consensus exchange of sizes that automatically propagates through
different parts of the code and avoids all-to-all.
CONFIG: enable nonBlockingExchange as default (for testing)
- this changes the Pstream::exchangeSizes to use NBX instead of
all-to-all, even for List containers.