The original description is found below, but this MR is now primarily about refactoring. Changes that affect the noise curves will be split off into other MRs.
These changes improve the modeling of suspensions that have a temperature gradient along the fibers. Each stage is split into an upper and a lower joint, which can have different material properties assigned in the ifo structure. The temperature of a joint is that of the mass to which it is attached. (However, temperature gradients are not yet supported within the top or bottom stages.) The average of the upper and lower joint dissipation is used to compute the noise.
Violin mode frequencies are slightly shifted in the aLIGO curve, due to the removal of a questionable approximation that was used in previous versions of the code. Now it just uses the equations given in ref GG.