##### SUMMARY
<!--- Explain the problem briefly below -->

The inventory cache is not flushed when using `--flush-cache`

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME

cli and/or inventory manager

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.16
  config file = /home/ioguix/git/support/ansible/ansible.cfg
  configured module search path = ['/home/ioguix/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
DEFAULT_HOST_LIST(/tmp/prov/ansible/ansible.cfg) = ['/tmp/prov/ansible/bug_report.yml']
DEFAULT_INVENTORY_PLUGIN_PATH(/tmp/prov/ansible/ansible.cfg) = ['/tmp/prov/ansible']
INVENTORY_CACHE_ENABLED(/tmp/prov/ansible/ansible.cfg) = True
INVENTORY_CACHE_PLUGIN(/tmp/prov/ansible/ansible.cfg) = jsonfile
INVENTORY_CACHE_PLUGIN_CONNECTION(/tmp/prov/ansible/ansible.cfg) = .
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->

Debian 10

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
ansible.cfg:
```yaml
[defaults]
inventory_plugins = .
inventory = bug_report.yml

[inventory]
cache=True
cache_plugin=jsonfile
cache_connection=.
```

Dummy inventory plugin `bug_report.py` displaying if the inventory manager gave `cache=True` or not:
```python
from ansible.plugins.inventory import BaseInventoryPlugin, Cacheable

class InventoryModule(BaseInventoryPlugin, Cacheable):
    def parse(self, inventory, loader, path, cache=True):
        if cache:
            self.display.v("Using data from cache")
        else:
            self.display.v("Updating cache")
```

Inventory yaml file `bug_report.yml`:
```yml
---
plugin: bug_report
```

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->

The doc state in https://docs.ansible.com/ansible/latest/dev_guide/developing_inventory.html#inventory-cache:
> This value comes from the inventory manager and indicates whether the inventory is being refreshed (such as via --flush-cache or the meta task refresh_inventory).

From previous minimal test case, as far as I understand the doc and comments in other inventory plugins, the first call, using `--flush-cache`, should output `Updating cache`. The second one should output `Using data from cache`:

```console
$ ansible-playbook -v --list-hosts --flush-cache playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Updating cache
[...]

$ ansible-playbook -v --list-hosts playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Using data from cache
[...]
```

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->

No matter if using `--flush-cache` or not, the inventory manager is setting `cache=True` and the plugin always shows `Using data from cache`:

```console
$ ansible-playbook -v --list-hosts --flush-cache playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Using data from cache
[...]

$ ansible-playbook -v --list-hosts playbook-dummy.yml
Using /tmp/prov/ansible/ansible.cfg as config file
Using data from cache
[...]
```

Looking at source code in current devel branch, it seems `--flush-cache` only flush facts and ignore inventory: https://github.com/ansible/ansible/blob/devel/lib/ansible/cli/playbook.py#L208

if not ignore_restrictions and self._restriction:
                pattern_list.extend(self._restriction)
            
            
            pattern_hash = tuple(pattern_list)
            if pattern_hash not in self._hosts_patterns_cache:
                patterns = split_host_pattern(pattern)
                hosts = self._evaluate_patterns(patterns)
                
                if not ignore_limits and self._subset:
                    
                    subset_uuids = set(s._uuid for s in self._evaluate_patterns(self._subset))
                    hosts = [h for h in hosts if h._uuid in subset_uuids]
                if not ignore_restrictions and self._restriction:
                    
                    hosts = [h for h in hosts if h.name in self._restriction]
                self._hosts_patterns_cache[pattern_hash] = deduplicate_list(hosts)
            
            if order in ['sorted', 'reverse_sorted']:
                hosts = sorted(self._hosts_patterns_cache[pattern_hash][:], key=attrgetter('name'), reverse=(order == 'reverse_sorted'))
            elif order == 'reverse_inventory':
                hosts = self._hosts_patterns_cache[pattern_hash][::-1]
            else:
                hosts = self._hosts_patterns_cache[pattern_hash][:]
                if order == 'shuffle':
                    shuffle(hosts)
                elif order not in [None, 'inventory']:
                    raise AnsibleOptionsError("Invalid 'order' specified for inventory hosts: %s" % order)
        return hosts
    def _evaluate_patterns(self, patterns):