The default value of autodoc_typehints_format configuration is changed
to `'smart'`. It will suppress the leading module names of typehints
(ex. `io.StringIO` -> `StringIO`).
refs: #9075
The special members are not treated as "attributes". So they're not
handled by DataDocumenter. This moves the detection to the earlier
step of filter_members().
An empty `__all__` should be represented as "there is no public items".
But autodoc considers all items on the module are public. This changes
the behavior to correct one.