bpo-17422: Language reference should specify restrictions on class namespace (#18559)

The language reference now specifies restrictions on class namespaces.  Adapted from a patch by Ethan Furman.
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index 9520f82..5b3b669 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -1946,10 +1946,12 @@
 is prepared. If the metaclass has a ``__prepare__`` attribute, it is called
 as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the
 additional keyword arguments, if any, come from the class definition). The
-``__prepare__`` method should be implemented as a :func:`classmethod`.
+``__prepare__`` method should be implemented as a :func:`classmethod`. The
+namespace returned by ``__prepare__`` is passed in to ``__new__``, but when
+the final class object is created the namespace is copied into a new ``dict``.
 
 If the metaclass has no ``__prepare__`` attribute, then the class namespace
-is initialised as an empty ordered mapping.
+is initialised as an empty :func:`dict`.
 
 .. seealso::