[ty] Reject using properties with `Never` setters or deleters (#24510)
## Summary
We currently error if `__setattr__` returns `Never` and the user
attempts to assign to an attribute, and same for deletion. This PR
extends that behavior to properties with setters and deleters.
For example, this is now forbidden:
```python
from typing import NoReturn
class NoReturnSetter:
@property
def x(self) -> int:
return 1
@x.setter
def x(self, value: int) -> NoReturn:
raise RuntimeError
no_return_setter = NoReturnSetter()
# error: [invalid-assignment] "Cannot assign to attribute `x` on type `NoReturnSetter` whose `__set__` method returns `Never`/`NoReturn`"
no_return_setter.x = 1
```