### Summary

Running `ansible-doc -l` generates 430 deprecation warnings on stderr before printing anything to stdout.
```
[DEPRECATION WARNING]: amazon.aws.aws_az_facts has been deprecated.
aws_az_facts was renamed in Ansible 2.9 to aws_az_info. Please update your
tasks. This feature will be removed from amazon.aws in a release after
2022-06-01. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.

[DEPRECATION WARNING]: amazon.aws.aws_caller_facts has been deprecated.
aws_caller_facts was renamed in Ansible 2.9 to aws_caller_info. Please update
your tasks. This feature will be removed from amazon.aws in a release after
2021-12-01. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
...
```

### Issue Type

Bug Report

### Component Name

ansible-doc

### Ansible Version

```console
$ ansible-doc --version

ansible-doc 2.10.6
  config file = None
  configured module search path = [u'/home/charleshowes/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible-doc
  python version = 2.7.17 (default, Sep 30 2020, 13:38:04) [GCC 7.5.0]
```


### Configuration

```console
$ ansible-config dump --only-changed
(no output)
```


### OS / Environment

Ubuntu 18.04

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```shell (paste below)
ansible-doc -l
```


### Expected Results

I expected to see a list of available plugins, and was shocked to have pages and pages of warnings.

### Actual Results

```console
$ ansible-doc -l 2>&1 | head

[DEPRECATION WARNING]: amazon.aws.aws_az_facts has been deprecated. 
aws_az_facts was renamed in Ansible 2.9 to aws_az_info. Please update your 
tasks. This feature will be removed from amazon.aws in a release after 
2022-06-01. Deprecation warnings can be disabled by setting 
deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: amazon.aws.aws_caller_facts has been deprecated. 
aws_caller_facts was renamed in Ansible 2.9 to aws_caller_info. Please update 
your tasks. This feature will be removed from amazon.aws in a release after 
2021-12-01. Deprecation warnings can be disabled by setting 
deprecation_warnings=False in ansible.cfg.

$ ansible-doc -l 2>&1 | grep -c 'DEPRECATION WARNING'

430
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
except AttributeError:
                    continue
                if not issubclass(obj, plugin_class):
                    continue
            self._display_plugin_load(self.class_name, basename, self._searched_paths, path, found_in_cache=found_in_cache, class_only=class_only)
            if not class_only:
                try:
                    obj = obj(*args, **kwargs)
                except TypeError as e:
                    display.warning("Skipping plugin (%s) as it seems to be incomplete: %s" % (path, to_text(e)))
            self._update_object(obj, basename, path)
            yield obj
class Jinja2Loader(PluginLoader):
    """
    PluginLoader optimized for Jinja2 plugins
    The filter and test plugins are Jinja2 plugins encapsulated inside of our plugin format.
    The way the calling code is setup, we need to do a few things differently in the all() method
    We can't use the base class version because of file == plugin assumptions and dedupe logic
    """
    def find_plugin(self, name, collection_list=None):
        if '.' in name:  
            return super(Jinja2Loader, self).find_plugin(name, collection_list=collection_list)
        
        raise AnsibleError('No code should call "find_plugin" for Jinja2Loaders (Not implemented)')
    def get(self, name, *args, **kwargs):
        if '.' in name:  
            return super(Jinja2Loader, self).get(name, *args, **kwargs)
        
        raise AnsibleError('No code should call "get" for Jinja2Loaders (Not implemented)')
    def all(self, *args, **kwargs):