Implemented a TODO and fixed what I think is a bug in the function 'diagonal'.

In matrix.clj, I completed the function 'diagonal' (it had a TODO for the part where we can provide the value of k and get the kth diagonal).
I added a function called 'kth-diagonal' in the protocol 'PMatrixSubComponents' and its default implementation. Also added some tests.
The function does not handle cases where k is larger than the dimensions of the matrix.

Also, I think I found a bug in the function 'diagonal' that did not take the parameter k and i fixed it.