##### SUMMARY
Inventory merges hashes instead of replacing them. If you have the same hash variable in 2 different file variables will be merged.
hash_behaviour is not configured, the default "replace".

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
Inventory plugin

##### ANSIBLE VERSION
```
ansible 2.10.4
  config file = None
  configured module search path = ['/<snipped>/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = <snipped>/lib64/python3.9/site-packages/ansible
  executable location = <snipped>/bin/ansible
  python version = 3.9.0 (default, Oct  6 2020, 00:00:00) [GCC 10.2.1 20200826 (Red Hat 10.2.1-3)]
```
Also effects:
```
ansible 2.10.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/<snipped>.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /<snipped>/lib64/python3.6/site-packages/ansible
  executable location = <snipped>/bin/ansible
  python version = 3.6.8 (default, Aug  7 2019, 17:28:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
```

##### CONFIGURATION
```
```

##### OS / ENVIRONMENT
Tested on the latest Fedora 33 and CentOs7

##### STEPS TO REPRODUCE
Create the following two inventory file:
Inventory file1:
```yaml
all:
    hosts:
        localhost:
    vars:
        test_hash:
          key1: value1
          key2: value2
```

Inventory file2:
```yaml
all:
    hosts:
        localhost:
    vars:
        test_hash:
          key1: other_value1
```

Then execute the following command:
```bash
$ ansible-inventory -i ./test_inventory1.yml -i ./test_inventory2.yml --list
{
    "_meta": {
        "hostvars": {
            "localhost": {
                "test_hash": {
                    "key1": "other_value1",
                    "key2": "value2"
                }
            }
        }
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    },
    "ungrouped": {
        "hosts": [
            "localhost"
        ]
    }
}
```

##### EXPECTED RESULTS
_"key2": "value2"_ shouldn't be there because the second test_hash variable should replace the first one.
This was the default behavior before this bug.

``` bash
$ ansible-inventory -i ./test_inventory1.yml -i ./test_inventory2.yml --list
{
    "_meta": {
        "hostvars": {
            "localhost": {
                "test_hash": {
                    "key1": "other_value1",
                }
            }
        }
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    },
    "ungrouped": {
        "hosts": [
            "localhost"
        ]
    }
}
```

##### ACTUAL RESULTS
As you can see the hashes are merged instead of replacing.

```bash
$ ansible-inventory -i ./test_inventory1.yml -i ./test_inventory2.yml --list
{
    "_meta": {
        "hostvars": {
            "localhost": {
                "test_hash": {
                    "key1": "other_value1",
                    "key2": "value2"
                }
            }
        }
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    },
    "ungrouped": {
        "hosts": [
            "localhost"
        ]
    }
}
```

return self.name
    def populate_ancestors(self, additions=None):
        
        if additions is None:
            for group in self.groups:
                self.add_group(group)
        else:
            for group in additions:
                if group not in self.groups:
                    self.groups.append(group)
    def add_group(self, group):
        added = False
        
        for oldg in group.get_ancestors():
            if oldg not in self.groups:
                self.groups.append(oldg)
        
        if group not in self.groups:
            self.groups.append(group)
            added = True
        return added
    def remove_group(self, group):