##### SUMMARY
While `ansible-config dump` is a very useful tool for determining the configuration used by Ansible at runtime, it does have a major flaw: its output is not machine parseable.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
ansible-config

##### ADDITIONAL INFORMATION
ansible-config should have an option to dump config in a machine parseable format like JSON or YAML, so it can be consumed by other tools.

text = []
        for setting in sorted(config):
            changed = False
            if isinstance(config[setting], Setting):
                
                if config[setting].origin == 'default':
                    color = 'green'
                elif config[setting].origin == 'REQUIRED':
                    
                    color = 'red'
                else:
                    color = 'yellow'
                    changed = True
                msg = "%s(%s) = %s" % (setting, config[setting].origin, config[setting].value)
            else:
                color = 'green'
                msg = "%s(%s) = %s" % (setting, 'default', config[setting].get('default'))
            if not context.CLIARGS['only_changed'] or changed:
                text.append(stringc(msg, color))
        return text
    def _get_global_configs(self):
        config = self.config.get_configuration_definitions(ignore_private=True).copy()
        for setting in config.keys():
            v, o = C.config.get_config_value_and_origin(setting, cfile=self.config_file, variables=get_constants())
            config[setting] = Setting(setting, v, o, None)
        return self._render_settings(config)
    def _get_plugin_configs(self, ptype, plugins):