A variety of tests around reachability. These tests in general check
two things:
that we get unreachable code warnings in reasonable locations;
that we permit coercions into! from expressions which
diverge, where an expression "diverges" if it must execute some
subexpression of type !, or it has type ! itself.