Make svdvals(::Matrix{<:Complex}) type inferrable (#22443)
* Make svdvals(::Matrix{<:Complex}) type inferrable
Ensure that svdvals(zeros(Complex128,0,0)) returns a complex real matrix
to avoid type instability. Also add some simplistic but explicit tests
for svdvals and svdfact, including ensuring this case is inferred.
* Add unitarity test for SVD U and Vt parts.
* Use \approxeq in tests instead of clobbering \approx