Fixed bugs in Matrix::Conjugate and several diagonal alignments, and implemented a much more general version of the diagonal manipulation and alignment routines by using compile-time mapping from distribution pairs to their corresponding diagonal redistribution. This required switching routines of the form d.AlignWithDiagonal( A, offset ) to the form A.ForceDiagonalAlign( d, offset ) since multiple different distribution pairs can generate the same diagonal distribution (e.g., [MC,MR], [MR,MC], [MD,* ], and [* ,MD] all result in [MD,* ]). Compilation of the (now templated over distribution) AbstractDistMatrix is currently quite slow; the next step is to introduce an intermediate derived class between AbstractDistMatrix and DistMatrix and to start avoiding more redundant routines through more compile-time distribution mappings.