Would it be possible to support functions like `qr!(A, (Q, R))`, `svd!(A, (U, S, V))`, `eigen!(A, (D, V))`, where we have allocated the matrices where the input will be stored already, and e.g. `qr!` copies the result there?