'Create a toolbox from the config files named by `config_filenames`, using
`tool_root_dir` as the base directory for finding individual tool config files.'

def __init__(self, config_filenames, tool_root_dir, app):

    self._dynamic_tool_confs = []
    self._tools_by_id = {}
    self._integrated_section_by_tool = {}
    self._tool_versions_by_id = {}
    self._workflows_by_id = {}
    self._tool_panel = ToolPanelElements()
    self._index = 0
    self.data_manager_tools = odict()
    self._lineage_map = LineageMap(app)
    self._init_integrated_tool_panel(app.config)
    self._tool_root_dir = tool_root_dir
    self.app = app
    if hasattr(self.app, 'watchers'):
        self._tool_watcher = self.app.watchers.tool_watcher
    else:
        self._tool_watcher = None
    self._filter_factory = FilterFactory(self)
    self._tool_tag_manager = tool_tag_manager(app)
    self._init_tools_from_configs(config_filenames)
    if ((self.app.name == 'galaxy') and self._integrated_tool_panel_config_has_contents):
        self._load_tool_panel()
    self._save_integrated_tool_panel()
