bpo-44524: Don't modify MRO when inheriting from typing.Annotated (GH-27841)

(cherry picked from commit 23384a1749359f0ae7aaae052073d44b59e715a1)

Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
diff --git a/Lib/typing.py b/Lib/typing.py
index 4935460..423329a 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -1573,7 +1573,7 @@ def __init__(self, origin, metadata):
         if isinstance(origin, _AnnotatedAlias):
             metadata = origin.__metadata__ + metadata
             origin = origin.__origin__
-        super().__init__(origin, origin, name="Annotated")
+        super().__init__(origin, origin)
         self.__metadata__ = metadata
 
     def copy_with(self, params):
@@ -1601,6 +1601,11 @@ def __eq__(self, other):
     def __hash__(self):
         return hash((self.__origin__, self.__metadata__))
 
+    def __getattr__(self, attr):
+        if attr in {'__name__', '__qualname__'}:
+            return 'Annotated'
+        return super().__getattr__(attr)
+
 
 class Annotated:
     """Add context specific metadata to a type.