##### SUMMARY
If any ansible.cfg value that expects a boolean is set to a value other than "true" or "yes" it is interpreted as "false", which leads to difficult to debug issues. Invalid boolean values should report an error or, at the very least, a warning.

This is especially confusing when the user attempts to use an inline comment (see #10354) - the configuration file *looks* valid to anyone who doesn't know the implementation details, but doesn't do what it seemingly should. I was about to re-open #23912 because Ansible wasn't printing a diff even though I set `always = True # some comment` in ansible.cfg.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
ansible.cfg

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.6
  config file = /media/sf_work/lops/ansible/ansible.cfg
  configured module search path = [u'/home/evgeny/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.17 (default, Nov  7 2019, 10:07:09) [GCC 7.4.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
ANSIBLE_PIPELINING(/media/sf_work/lops/ansible/ansible.cfg) = True
DEFAULT_BECOME(/media/sf_work/lops/ansible/ansible.cfg) = True
DEFAULT_FILTER_PLUGIN_PATH(/media/sf_work/lops/ansible/ansible.cfg) = [u'/media/sf_work/lops/ansible/filter_plugins']
DEFAULT_HASH_BEHAVIOUR(/media/sf_work/lops/ansible/ansible.cfg) = merge
DEFAULT_LOG_PATH(/media/sf_work/lops/ansible/ansible.cfg) = /media/sf_work/lops/ansible/ansible.log
DEFAULT_ROLES_PATH(/media/sf_work/lops/ansible/ansible.cfg) = [u'/media/sf_work/lops/ansible/roles']
DEFAULT_STDOUT_CALLBACK(/media/sf_work/lops/ansible/ansible.cfg) = debug
DEFAULT_TRANSPORT(/media/sf_work/lops/ansible/ansible.cfg) = smart
DEFAULT_VAULT_PASSWORD_FILE(/media/sf_work/lops/ansible/ansible.cfg) = /home/evgeny/.ansible/password
DIFF_ALWAYS(/media/sf_work/lops/ansible/ansible.cfg) = True
INTERPRETER_PYTHON(/media/sf_work/lops/ansible/ansible.cfg) = auto_legacy_silent
RETRY_FILES_ENABLED(/media/sf_work/lops/ansible/ansible.cfg) = False
TRANSFORM_INVALID_GROUP_CHARS(/media/sf_work/lops/ansible/ansible.cfg) = ignore
```

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

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

<!--- Paste example playbooks or commands between quotes below -->
```ini
[privilege_escalation]
become = truee

[diff]
always = True # Always print diff
```

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

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
Error (or at least warning) such as "Invalid boolean value for ansible.cfg setting 'become' in section 'privilege_escalation"

##### ACTUAL RESULTS
Ansible runs with become = false and always = false, so it does not attempt to use sudo and does not print the diff at the end.
for key in ds:
                if not isidentifier(key):
                    raise TypeError("'%s' is not a valid variable name" % key)
        try:
            if isinstance(ds, dict):
                _validate_variable_keys(ds)
                return combine_vars(self.vars, ds)
            elif isinstance(ds, list):
                all_vars = self.vars
                for item in ds:
                    if not isinstance(item, dict):
                        raise ValueError
                    _validate_variable_keys(item)
                    all_vars = combine_vars(all_vars, item)
                return all_vars
            elif ds is None:
                return {}
            else:
                raise ValueError
        except ValueError as e:
            raise AnsibleParserError("Vars in a %s must be specified as a dictionary, or a list of dictionaries" % self.__class__.__name__,
                                     obj=ds, orig_exc=e)
        except TypeError as e:
            raise AnsibleParserError("Invalid variable name in vars specified for %s: %s" % (self.__class__.__name__, e), obj=ds, orig_exc=e)
    def _extend_value(self, value, new_value, prepend=False):