##### SUMMARY
The current implementation of CachePluginAdjudicator is unable to flush the cache without loading everything in memory using `load_whole_cache`. Iterating over the plugins cache keys would avoid that step.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
ansible.plugins.cache
CachePluginAdjudicator

##### ANSIBLE VERSION
```
ansible 2.9.6
  config file = /home/harm/dev/closso-ansible/ansible.cfg
  configured module search path = ['/home/harm/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/harm/.virtualenvs/ansible/lib/python3.7/site-packages/ansible
  executable location = /home/harm/.virtualenvs/ansible/bin/ansible
  python version = 3.7.3 (default, Apr  3 2019, 05:39:12) [GCC 8.3.0]
```

##### CONFIGURATION
```
CACHE_PLUGIN(/home/harm/dev/closso-ansible/ansible.cfg) = jsonfile
CACHE_PLUGIN_CONNECTION(/home/harm/dev/closso-ansible/ansible.cfg) = ./cache/fact/
CACHE_PLUGIN_TIMEOUT(/home/harm/dev/closso-ansible/ansible.cfg) = 86400
DEFAULT_CALLBACK_PLUGIN_PATH(/home/harm/dev/closso-ansible/ansible.cfg) = ['/home/harm/dev/closso-ansible/plugins/callback', '/usr/share/ansible/plugins/callback']
DEFAULT_CALLBACK_WHITELIST(/home/harm/dev/closso-ansible/ansible.cfg) = ['profile_tasks']
DEFAULT_FILTER_PLUGIN_PATH(/home/harm/dev/closso-ansible/ansible.cfg) = ['/home/harm/dev/closso-ansible/plugins/filter', '/usr/share/ansible/plugins/filter']
DEFAULT_GATHERING(/home/harm/dev/closso-ansible/ansible.cfg) = smart
DEFAULT_HOST_LIST(/home/harm/dev/closso-ansible/ansible.cfg) = ['/home/harm/dev/closso-ansible/netbox_inventory.yml']
DEFAULT_LOOKUP_PLUGIN_PATH(/home/harm/dev/closso-ansible/ansible.cfg) = ['/home/harm/dev/closso-ansible/plugins/lookup', '/usr/share/ansible/plugins/lookup']
DEFAULT_ROLES_PATH(/home/harm/dev/closso-ansible/ansible.cfg) = ['/home/harm/dev/closso-ansible/roles']
DEFAULT_VARS_PLUGIN_PATH(/home/harm/dev/closso-ansible/ansible.cfg) = ['/home/harm/dev/closso-ansible/plugins/vars', '/usr/share/ansible/plugins/vars']
DOC_FRAGMENT_PLUGIN_PATH(/home/harm/dev/closso-ansible/ansible.cfg) = ['/home/harm/dev/closso-ansible/plugins/doc_fragments', '/usr/share/ansible/plugins/doc_fragments']
HOST_KEY_CHECKING(/home/harm/dev/closso-ansible/ansible.cfg) = False
INVENTORY_CACHE_ENABLED(/home/harm/dev/closso-ansible/ansible.cfg) = True
INVENTORY_ENABLED(/home/harm/dev/closso-ansible/ansible.cfg) = ['host_list', 'script', 'yaml', 'ini', 'netbox']
TRANSFORM_INVALID_GROUP_CHARS(/home/harm/dev/closso-ansible/ansible.cfg) = never
USE_PERSISTENT_CONNECTIONS(/home/harm/dev/closso-ansible/ansible.cfg) = True
```

##### STEPS TO REPRODUCE

```
>>> cache = CachePluginAdjudicator('jsonfile', _uri='./cache/netbox')
>>> cache._plugin.keys()
['netbox_b42bfs_d14a8', 'netbox_b42bfs_81f3c']
>>> cache.keys()
dict_keys([])
>>> cache.flush()
>>> cache._plugin.keys()
['netbox_b42bfs_d14a8', 'netbox_b42bfs_81f3c']
>>> cache.keys()
dict_keys([])
>>> cache.load_whole_cache()
>>> cache.keys()
dict_keys(['netbox_b42bfs_d14a8', 'netbox_b42bfs_81f3c'])
>>> cache.flush()
>>> cache.keys()
dict_keys([])
>>> cache._plugin.keys()
[]
```

##### EXPECTED RESULTS

Cache should be flushed without loading everything in memory.


##### ACTUAL RESULTS

`cache.flush()` does nothing.

if self._do_load_key(key):
            try:
                self._cache[key] = self._plugin.get(key)
            except KeyError as e:
                pass
            else:
                self._retrieved[key] = self._cache[key]
        return self._cache.get(key, default)
    def items(self):
        return self._cache.items()
    def values(self):
        return self._cache.values()
    def keys(self):
        return self._cache.keys()
    def pop(self, key, *args):
        if args:
            return self._cache.pop(key, args[0])
        return self._cache.pop(key)
    def __delitem__(self, key):
        del self._cache[key]
    def __setitem__(self, key, value):
        self._cache[key] = value
    def flush(self):
        for key in self._cache.keys():
            self._plugin.delete(key)
        self._cache = {}
    def update(self, value):
        self._cache.update(value)