Fix real schur and polynomial solver.
For certain inputs, the real schur decomposition might get stuck in a cycle. Exceptional shifts are supposed to knock us out of that - but previously they were only ever applied at iteration 10 and 30, which doesn't help if the cycle starts after cycle 30. Modified to apply a shift every 16 iterations (for reference, LAPACK seems to do it every 6 iterations).
Also added an assert in polynomial solver to verify that the schur decomposition was successful.
Fixes #2633 (closed).