##### SUMMARY
2.9/devel currently supports relative Python imports inside a collection for all but modules/module_utils. Extend the AnsiballZ analysis/bundling to support relative imports for those as well.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
module_common.py

##### ADDITIONAL INFORMATION
This is needed to minimize the number of places a collection must refer to itself by name. Also a convenience for shorter intra-collection Python imports (eg `from ..module_utils.blah import AThing` vs. `from ansible_collections.myns.mycoll.plugins.module_utils.blah import AThing`)
if full_name not in self._plugin_path_cache[extension]:
                    self._plugin_path_cache[extension][full_name] = full_path
            self._searched_paths.add(path)
            try:
                return pull_cache[name]
            except KeyError:
                
                pass
        
        if not name.startswith('_'):
            alias_name = '_' + name
            
            if alias_name in pull_cache:
                if not ignore_deprecated and not os.path.islink(pull_cache[alias_name]):
                    
                    display.deprecated('%s is kept for backwards compatibility but usage is discouraged. '  
                                       'The module documentation details page may explain more about this rationale.' % name.lstrip('_'))
                return pull_cache[alias_name]
        return None
    def find_plugin(self, name, mod_type='', ignore_deprecated=False, check_aliases=False, collection_list=None):
        ''' Find a plugin named name '''
        
        from ansible.vars.reserved import is_reserved_name
        plugin = self._find_plugin(name, mod_type=mod_type, ignore_deprecated=ignore_deprecated, check_aliases=check_aliases, collection_list=collection_list)
        if plugin and self.package == 'ansible.modules' and name not in ('gather_facts',) and is_reserved_name(name):
            raise AnsibleError(
                'Module "%s" shadows the name of a reserved keyword. Please rename or remove this module. Found at %s' % (name, plugin)
            )
        return plugin
    def has_plugin(self, name, collection_list=None):