Clean-up and update Qr factorisation without pivoting
Implementation of qr now uses an architecture-dependant version of
qrf, which is a direct call to the Lapack kernel.
Both implementations of the kernel with allocation of workspace and
without are in place, the kernel call for allocation of workspace
pass void pointer for matrix A and vector Tau.

Handling exception added but the value returned by xerbla thourgh
mkl is incorrect. Memory handling is done by trf and qr will choose
between qrf and qp3 which will be implemented next.
Exception thrown when a runtime error is triggered from a direct call to a Lapack kernel