##### SUMMARY
The collection loader currently imports a number of things from Ansible, the heaviest of which is config/constants. This makes it heavyweight and somewhat dangerous for ansible-test and unit tests to use. Refactor it to minimize those imports and supply the necessary impls another way (constructor, DI pattern, etc).

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
AnsibleCollectionLoader

##### ADDITIONAL INFORMATION

if extension:
            resource += extension
        pkg = sys.modules.get(package)
        if not pkg:
            
            pkg = import_module(package)
        
        
        if hasattr(pkg, '__loader__') and isinstance(pkg.__loader__, AnsibleFlatMapLoader):
            try:
                file_path = pkg.__loader__.find_file(resource)
                return to_text(file_path)
            except IOError:
                
                return None
        pkg_path = os.path.dirname(pkg.__file__)
        resource_path = os.path.join(pkg_path, resource)
        
        if os.path.exists(resource_path):
            return to_text(resource_path)
        
        ext_blacklist = ['.pyc', '.pyo']
        found_files = [f for f in glob.iglob(os.path.join(pkg_path, resource) + '.*') if os.path.isfile(f) and os.path.splitext(f)[1] not in ext_blacklist]
        if not found_files:
            return None
        if len(found_files) > 1:
            
            pass
        return to_text(found_files[0])
    def find_plugin(self, name, mod_type='', ignore_deprecated=False, check_aliases=False, collection_list=None):