Document DiagonalBase
What does this implement/fix?
DiagonalBase is undocumented and doesn't show up in the class lists. It has the math-y diagonal methods so I think it's important that it has some docs. I tried to base these off of other docs I saw in MatrixBase.
I also included some cleanup and clang-formatted the updated portions.
The type aliases are kind of ugly, but seem necessary because the return types can be very long and easily go past the end of my screen in the doc website. IDK if there's a better way to handle that.
Happy to make any changes!