Cleaned up inference of MPI type for T
Added support for distributed matrix load from disk

Same assumptions re: on-disk ordering as in save().
Added support for filling strictly lower-triangular part

Not populated for symmetric case update (to save on communication) - can
now fill strictly lower-triangular part after initial commit() call
(thus filling w/ only the aggregate result of the suite of updates).

Also added support for elemental update (as opposed to indexed strided
slice)
Small optimization for fill_lower()