Make adjoint and solve work for most factorizations (#40899)
* Add adjoint for Cholesky
* Implement adjoint for BunchKaufman
* Fix ldiv! for adjoints of Hessenbergs
* Add adjoint of LDLt
* Fix return for tall problems in fallback \ method for adjoint of
Factorizations to make \ work for adjoint LQ.
* Fix qr(A)'\b
* Define adjoint for SVD
* Improve promotion in fallback by defining general convert methods
for Factorizations
* Fix ldiv! for SVD
* Restrict the general \ definition that handles over- and underdetermined
systems to LAPACK factorizations
* Remove redundant \ definitions in diagonal.jl
* Add Factorization constructors for SVD
* Disambiguate between the specialized \ for real lhs-complex rhs and
then new \ for LAPACKFactorizations.
* Adjustments based on review
* Fixes for new pivoting syntax