Add a test exhibiting failure to notice a dead exit edge controlled by an invariant test.
Fix: loop exited-blocks were getting classified as "invariant" with scopes less general than their natural scope!

This happened when exit edges were considered invariants to their natural scope, e.g. loop A contains B contains C, and some direct C -> A edge is invariant at scope B. Then the target block (with natural scope A) got assigned invariant scope B, which makes no sense!