Enable support for the user to be able to update matrix diagonal: - [ ] Each matrix format has a diagonal vector `diag` of size `num_rows` that contains the index of diagonal values in the `values` array. - [ ] `values[diag[i]] = k` updates the diagonal entry of row `i`