[ty] Enforce Final attribute assignment rules for annotated and augmented writes (#23880)
## Summary
Reject `Final` attribute writes that previously slipped through the
`annotated-assignment` and `augmented-`assignment code paths, e.g.:
```python
self.x: Final[int] = 1
```
Closes https://github.com/astral-sh/ty/issues/1888.