Docs: Fix built-in function `__self__` attribute descriptions (GH-159653)

Since PEP 3121, functions in C modules are bound to their module, so
their __self__ is the module object. The inspect.isbuiltin docstring,
the inspect attribute table and the data model reference still say
it is None, as it was in Python 2. Describe it as the module object
the function was defined in, or None.
diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst
index 624b130..196479e 100644
--- a/Doc/library/inspect.rst
+++ b/Doc/library/inspect.rst
@@ -319,6 +319,8 @@
 +-----------------+-------------------+---------------------------+
 |                 | __self__          | instance to which a       |
 |                 |                   | method is bound, or       |
+|                 |                   | module object a function  |
+|                 |                   | was defined in, or        |
 |                 |                   | ``None``                  |
 +-----------------+-------------------+---------------------------+
 
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index c860a33..d208972 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -863,7 +863,8 @@
 * :attr:`!__doc__` is the function's documentation string, or ``None`` if
   unavailable. See :attr:`function.__doc__`.
 * :attr:`!__name__` is the function's name. See :attr:`function.__name__`.
-* :attr:`!__self__` is set to ``None`` (but see the next item).
+* :attr:`!__self__` is the module object the function was defined in or
+  ``None`` if unavailable.
 * :attr:`!__module__` is the name of
   the module the function was defined in or ``None`` if unavailable.
   See :attr:`function.__module__`.
diff --git a/Lib/inspect.py b/Lib/inspect.py
index bceed35..db9129d 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -441,7 +441,8 @@ def isbuiltin(object):
     Built-in functions and methods provide these attributes:
         __doc__         documentation string
         __name__        original name of this function or method
-        __self__        instance to which a method is bound, or None"""
+        __self__        instance to which a method is bound, or module object
+                        a function was defined in, or None"""
     return isinstance(object, types.BuiltinFunctionType)
 
 def ismethodwrapper(object):