SI-6815 Loosen definition of stability in stable ID patterns

Before, a stable identifier pattern was vetted by `isStable`,
which delegates to `isExprSafeToInline`. This requires that
the result type of the expression is non-volatile.

But, according to @adriaanm, while "it's unsound to select
types on a prefix with a volatile type", it "should be fine
to compare it for equality."

The infrastructure to perform the looser check was already
in place for reporting stability errors; this commit employs
it when checking stability of patterns.

The enclosed `neg` test shows that this doesn't overreach:
type selections are still disallowed.

Review by @adriaanm