Fixed a bug where the "rare case" produced incorrect results due to a missing conjugation. Also cleaned up a few other things.
Templated the main function and cleaned up comments.
Changed the inner loop of HessTri reduction to the new form with a loop variable local to the loop definition.
Changed HessenbergQZ to ensure a real beta (eigenvalue denominator). It was already ensured, but the interface is now defined with real beta.