Sema: Fix override availability checking for protocols.
Given the following test case, override availability checking produced an
erroneus diagnostic:
```
@available(macOS 10.15, *)
protocol P {
associatedtype A
var a: A { get set }
}
@available(macOS 13.0, *)
protocol Q: P {
// error: overriding _modify accessor for 'a' must be as available as
// declaration it overrides
var a: A { get set }
}
```
The synthesized `_modify` accessor in `Q` is explicitly marked available in
macOS 13, which is less available than the `_modify` accessor in `P`. The
availability of `Q` should limit the required availability of the override and
prevent the diagnostic, but the implementation had a bug where it checked the
availability of the context's type instead of the contextual self type's
declaration. In the example, the context's type is `Self` which does not have
annotated availability.
Resolves rdar://133573707.