<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY

Our ansible.cfg lists all well-known keys, but ansible-vault fails to run if any of the keys are missing. We only publish to our CI/respective user environments keys that are appropriate for that stack. This means that an operations person cannot run ansible without having access to all known environment's keys. To us, this makes the use of multiple vault ids not all that useful.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
ansible-vault

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```
ansible 2.7.10
  config file = /Users/dkimsey/ansible/ansible.cfg
  configured module search path = ['/Users/dkimsey/ansible/library']
  ansible python module location = /Users/dkimsey/.virtualenvs/ansible-2.7/lib/python3.7/site-packages/ansible
  executable location = /Users/dkimsey/.virtualenvs/ansible-2.7/bin/ansible
  python version = 3.7.3 (default, May  1 2019, 10:48:04) [Clang 10.0.0 (clang-1000.11.45.5)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```
DEFAULT_VAULT_IDENTITY_LIST(/Users/dkimsey/ansible/ansible.cfg) = ['qa@~/.vault-qa', 'stg@~/.vault-staging', 'prod@~/.vault-production']
```

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

n/a


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

<!--- Paste example playbooks or commands between quotes below -->
```
$ echo "my-secret-key" > ~/.vault-staging
$ ansible-vault encrypt_string --vault-id=stg --name client
```

<!--- HINT: You can paste gist.github.com links for larger files -->

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

I'd expect it to skip missing vault keys. Maybe log it in verbose mode that it tried to access and failed.

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

<!--- Paste verbatim command output between quotes -->
```
ansible-vault 2.7.10
  config file = /Users/dkimsey/ansible/ansible.cfg
  configured module search path = ['/Users/dkimsey/ansible/library']
  ansible python module location = /Users/dkimsey/.virtualenvs/ansible-2.7/lib/python3.7/site-packages/ansible
  executable location = /Users/dkimsey/.virtualenvs/ansible-2.7/bin/ansible-vault
  python version = 3.7.3 (default, May  1 2019, 10:48:04) [Clang 10.0.0 (clang-1000.11.45.5)]
Using /Users/dkimsey/ansible/ansible.cfg as config file
ERROR! The vault password file /Users/dkimsey/.vault-qa was not found
```

"""
        Create an options parser for most ansible scripts
        Subclasses need to implement this method.  They will usually call the base class's
        init_parser to create a basic version and then add their own options on top of that.
        An implementation will look something like this::
            def init_parser(self):
                super(MyCLI, self).init_parser(usage="My Ansible CLI", inventory_opts=True)
                ansible.arguments.option_helpers.add_runas_options(self.parser)
                self.parser.add_option('--my-option', dest='my_option', action='store')
        """
        self.parser = opt_help.create_base_parser(self.name, usage=usage, desc=desc, epilog=epilog)
    @abstractmethod
    def post_process_args(self, options):
        """Process the command line args
        Subclasses need to implement this method.  This method validates and transforms the command
        line arguments.  It can be used to check whether conflicting values were given, whether filenames
        exist, etc.
        An implementation will look something like this::
            def post_process_args(self, options):
                options = super(MyCLI, self).post_process_args(options)
                if options.addition and options.subtraction:
                    raise AnsibleOptionsError('Only one of --addition and --subtraction can be specified')
                if isinstance(options.listofhosts, string_types):
                    options.listofhosts = string_types.split(',')
                return options
        """
        
        if hasattr(options, 'tags') and not options.tags: