add generalized dot product (#32739)
* add generalized dot product
* add generalized dot for Adjoint and Transpose
* add "generalized" dot for UniformScalings
* fix adjoint/transpose in tridiags
* improve generic dot, add tests
* fix typos, optimize *diag, require_one_based_indexing
* add tests
* fix typos in triangular and tridiag
* fix BigFloat tests in triangular
* add sparse tests (and minor fix)
* handle block arrays of varying lengths
* make generalized dot act recursively
* add generalized dot for symmetric/Hermitian matrices
* fix triangular case
* more complete tests for Symmetric/Hermitian
* fix UnitLowerTriangular case
* fix complex case in symmetric gendot
* interpret dot(x, A, y) as dot(A'x, y), test accordingly
* use correct tolerance in triangular tests
* add gendot for UpperHessenberg, and tests
* fix docstring of 3-arg dot
* add generic 3-arg dot for UniformScaling
* add generic fallback
This should be only relevant to cases like `dot(x, J, y)`, where `x` and `y` are vectors of quaternion vectors, and `J` is a quaternion `UniformScaling`.
* add gendot with middle argument Number
* attach docstring to generic fallback
* simplify scalar/uniform scaling gendot
* merge NEWS
* use dot(A'x,y) for fallback
* use accessor functions in sparse code, generalize to Abstract..., tests
* revert fallback definition
* remove redundant Number version
* write out loops in symmetric/hermitian case
* test quaternions in uniformscaling gendot
* fix uniformscaling test
* add compat note and jldoctest