Moving GeneralDistMatrix::ColAllGather into copy::ColAllGather and simplifying the implementation
Converting ColAllGather and RowAllGather into the copy namespace, adding InterleaveMatrixUpdate, and making use of InterleaveMatrix{Update} in situ in several routines for GeneralDistMatrix