Python protocol for distributed arrays.  Like the PEP-3118 buffer protocol, but for potentially large arrays distributed across several processes.  Supports block, cyclic, block-cyclic, padded, and unstructured distributions.