Given a function such as:
void foo() noexcept try { throw; } catch(...) { }
The clang-5.0 and later behavior is to assume the throw can't be
caught because its child element is checked first. This is incorrect.
We already have logic checking for a catch-all block which can
cope with this, so just move that higher in the priority.