completed function diagonal, added function in PMatrixSubComponents protocol, default implementation and tests.
(does not handle k values that are out of range)