[ty] Reject functional TypedDict with mismatched name (#24295)
## Summary
Given `BadTypedDict = TypedDict("WrongName", {"name": str})`, the
conformance test suite suggests we need to raise a diagnostic due to the
mismatch between `BadTypedDict` and `WrongName`.
See:
https://github.com/astral-sh/ruff/pull/24174#issuecomment-4150500572.
---------
Co-authored-by: David Peter <mail@david-peter.de>