### Summary

When using `difference` filter with element that have just case-difference in the value of the filter, only one is kept.

### Issue Type

Feature Request

### Component Name

filters

### Ansible Version

```console
$ ansible --version
ansible 2.9.10
  config file = None
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.8 (default, Mar  4 2021, 21:24:42) [GCC 10.2.0]
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

RHEL 7

### Steps to Reproduce

```yaml
- hosts: localhost
  vars:
    list1:
      - a
      - A
      - b
      - B
    list2:
      - b
  tasks:
    - debug:
        msg: "{{ list1 | difference(list2) }}"
    - debug:
        msg: "{{ list1 | difference([]) }}"
```

```shell
ansible-playbook playbook.yml
```

### Expected Results

**All** the elements of `list1` that don’t exist in `list2` (as documented)

```
TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "A",
        "B"
    ]
}

TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "A",
        "b",
        "B"
    ]
}
```

### Actual Results

```console
TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "B"
    ]
}

TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "b"
    ]
}
```


### Code of Conduct

I agree to follow the Ansible Code of Conduct
#
#
#
#
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import itertools
import math
from jinja2.filters import environmentfilter
from ansible.errors import AnsibleFilterError, AnsibleFilterTypeError
from ansible.module_utils.common.text import formatters
from ansible.module_utils.six import binary_type, text_type
from ansible.module_utils.six.moves import zip, zip_longest
from ansible.module_utils.common._collections_compat import Hashable, Mapping, Iterable
from ansible.module_utils._text import to_native, to_text
from ansible.utils.display import Display
try:
    from jinja2.filters import do_unique
    HAS_UNIQUE = True
except ImportError:
    HAS_UNIQUE = False
try:
    from jinja2.filters import do_max, do_min
    HAS_MIN_MAX = True
except ImportError:
    HAS_MIN_MAX = False
display = Display()
@environmentfilter
def unique(environment, a, case_sensitive=False, attribute=None):