I just realized that I need a BidiagonalMatrix class that can switch at runtime between "upper" and "lower" bidiagonal.
The reason for that is that in the divide-and-conquer SVD, in the dividing step, we take out the central column of the matrix, so the right half gets toggled between "upper" and "lower".
This will also allow to have a general Bidiagonalization decomposition, instead of the current UpperBidiagonalization.
All of this is what LAPACK does, but as usual I wanted to go my own foolish way rather than heeding LAPACK's ancestral knowledge...\
The BandMatrix class remains useful for lots of other uses though!