bpo-38605: Revert making 'from __future__ import annotations' the default (GH-25490)

This reverts commits 044a1048ca93d466965afc027b91a5a9eb9ce23c and 1be456ae9d53bb1cba2b24fc86175c282d1c2169, adapting the code to changes that happened after it.
diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py
index 1b95bb9..036349b 100644
--- a/Lib/dataclasses.py
+++ b/Lib/dataclasses.py
@@ -413,10 +413,8 @@ def _create_fn(name, args, body, *, globals=None, locals=None,
 
     ns = {}
     exec(txt, globals, ns)
-    func = ns['__create_fn__'](**locals)
-    for arg, annotation in func.__annotations__.copy().items():
-        func.__annotations__[arg] = locals[annotation]
-    return func
+    return ns['__create_fn__'](**locals)
+
 
 def _field_assign(frozen, name, value, self_name):
     # If we're a frozen class, then assign to our fields in __init__
@@ -667,11 +665,6 @@ def _is_type(annotation, cls, a_module, a_type, is_type_predicate):
     # a eval() penalty for every single field of every dataclass
     # that's defined.  It was judged not worth it.
 
-    # Strip away the extra quotes as a result of double-stringifying when the
-    # 'annotations' feature became default.
-    if annotation.startswith(("'", '"')) and annotation.endswith(("'", '"')):
-        annotation = annotation[1:-1]
-
     match = _MODULE_IDENTIFIER_RE.match(annotation)
     if match:
         ns = None
@@ -1020,7 +1013,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen,
     if not getattr(cls, '__doc__'):
         # Create a class doc-string.
         cls.__doc__ = (cls.__name__ +
-                       str(inspect.signature(cls)).replace(' -> NoneType', ''))
+                       str(inspect.signature(cls)).replace(' -> None', ''))
 
     if match_args:
         _set_new_attribute(cls, '__match_args__',