[ty] Minor improvements to diagnostics for abstract final classes (#23376)
## Summary
Another PR split out from #22898, to reduce the diff in that PR. Changes
made here:
- Use "declared" rather than "defined" in a diagnostic message
- Use secondary annotations (underlined with `______`) rather than
primary annotations (underlined with `^^^^^^^`) for annotations in
informational subdiagnostics
- Shorten one diagnostic message in some situations: if the abstract
method was defined on the same class that we're emitting a diagnostic
on, just say "method X declared here" rather than "method X declared
here on superclass Y"
## Test Plan
`cargo insta test -p ty_python_semantic`