### Summary

`ansible-lint` stops working with the error message "A vault password must be specified to decrypt data". It is difficult to understand which of the vault files is causing the problem.

So I ask you to extend the error messages in

https://github.com/ansible/ansible/blob/61d5586c7cf3b5f821bbe748aaff9d421da13cd8/lib/ansible/parsing/vault/__init__.py#L604

and

https://github.com/ansible/ansible/blob/61d5586c7cf3b5f821bbe748aaff9d421da13cd8/lib/ansible/parsing/vault/__init__.py#L661

with the filename like in:

https://github.com/ansible/ansible/blob/61d5586c7cf3b5f821bbe748aaff9d421da13cd8/lib/ansible/parsing/vault/__init__.py#L665-L667

Example: Current behaviour
```
# ansible-lint roles/myrole/tasks/vars/config_vault.yml
A vault password must be specified to decrypt data
```

Suggested result:
```
# ansible-lint roles/myrole/tasks/vars/config_vault.yml
A vault password must be specified to decrypt data in roles/myrole/tasks/vars/config_vault.yml
```


### Issue Type

Bug Report

### Component Name

vault

### Ansible Version

```console
$ ansible --version
ansible [core 2.13.7]
  config file = None
  configured module search path = ['/home/carsten/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/carsten/virtualenv/lib64/python3.10/site-packages/ansible
  ansible collection location = /home/carsten/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/carsten/virtualenv/bin/ansible
  python version = 3.10.8 (main, Oct 28 2022, 17:28:32) [GCC]
  jinja version = 3.1.2
  libyaml = True
```


### Configuration

```console
n/a
```


### OS / Environment

SUSE Linux Enterprise Server 15 SP4

### Steps to Reproduce

see summary

### Expected Results

see summary

### Actual Results

```console
see summary
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
command = [self.filename]
        if self._vault_id:
            command.extend(['--vault-id', self._vault_id])
        return command
    def __repr__(self):
        if self.filename:
            return "%s(filename='%s', vault_id='%s')" % \
                (self.__class__.__name__, self.filename, self._vault_id)
        return "%s()" % (self.__class__.__name__)
def match_secrets(secrets, target_vault_ids):
    '''Find all VaultSecret objects that are mapped to any of the target_vault_ids in secrets'''
    if not secrets:
        return []
    matches = [(vault_id, secret) for vault_id, secret in secrets if vault_id in target_vault_ids]
    return matches
def match_best_secret(secrets, target_vault_ids):
    '''Find the best secret from secrets that matches target_vault_ids
    Since secrets should be ordered so the early secrets are 'better' than later ones, this
    just finds all the matches, then returns the first secret'''
    matches = match_secrets(secrets, target_vault_ids)
    if matches:
        return matches[0]
    
    return None
def match_encrypt_vault_id_secret(secrets, encrypt_vault_id=None):