WIP: Cleanup of Tridiagonal code

The eventual goal of this PR is to implement the missing functionality referenced by #3688, #5429.

Currently, this just strips out the temporary working variables as fields from within Tridiagonal.