Add julia implementation of the QR algorithm. This includes elementary reflectors. Add Float16 and BigFloat to tests and test promotion. Cleaup promotion in LinAlg. Avoid promotion in mutating ! functions. Make Symmetric, Hermitian and QRs immutable. Make thin a keyword argument in svdfact. Remove cond argument in sqrtm.
Merge pull request #5526 from JuliaLang/anj/qr

RFC:QR decomposition in julia