      It can also provide dynamic columns for resizing widgets
  
      Parameters
      ----------
      parent: tk object
          Parent widget that should hold this control panel
      options: list of  ControlPanelOptions objects
          The list of controls that are to be built into this control panel
      label_width: int, optional
          The width that labels for controls should be set to.
 
</s> remove         to accomodate. Setting to 1 means that there will only be 1 column
 </s> add         to accommodate. Setting to 1 means that there will only be 1 column </s> remove         For checkbutton and radiobutton containers, how many options should
 </s> add         For check-button and radio-button containers, how many options should </s> remove         How the control panel should handle Nones. If set to True then Nones
        will be converted to empty strings. Default: False
 </s> add         How the control panel should handle None values. If set to True then None values will be
        converted to empty strings. Default: False </s> remove class ReadOnlyText(tk.Text):  # pylint: disable=too-many-ancestors
    """ A read only text widget that redirects a standard tk.Text widget's insert and delete
    attributes.
    Source: https://stackoverflow.com/questions/3842155
 </s> add class Config():
    """ The centralized configuration class for holding items that should be made available to all
    parts of the GUI.

    This class should be initialized on GUI startup through :func:`initialize_config`. Any further
    access to this class should be through :func:`get_config`.

    Parameters
    ----------
    root: :class:`tkinter.Tk`
        The root Tkinter object
    cli_opts: :class:`lib.gui.options.CliOpts`
        The command line options object
    statusbar: :class:`lib.gui.custom_widgets.StatusBar`
        The GUI Status bar
    session: :class:`lib.gui.stats.Session`
        The current training Session </s> remove def add_command(name, func):
 </s> add def _add_command(name, func):
    parent: tkinter object
      It can also provide dynamic columns for resizing widgets
  
      Parameters
      ----------
    parent: tkinter object
          Parent widget that should hold this control panel
      options: list of  ControlPanelOptions objects
          The list of controls that are to be built into this control panel
      label_width: int, optional
          The width that labels for controls should be set to.
keep keep keep keep replace keep keep keep keep keep
 GUI Updates (#940)

* lib.gui: Update icons
* tools.cli: Add video filetype flag to mask input
* lib.gui.popup_configure: Refresh GUI on config save
* lib.gui._config: Add Icon size and load last session options
* lib.gui.control_helper - Add control modification tracking
* lib.gui - Add Projects and Last Session
- Main root title handled by projects
- Add Hotkeys
- Create projects module
- split fsw and fst filetypes
- Add last_session saving

* lib.project
- Documentation
- Ask confirm on closing unsaved project
-Fixups

* Track model folder changes
- Shuffle some globals
- Activate System Verbosity for GUI

* lib.gui.utils - Documentation and clean up
- lib.gui.custom_widgets - Create and document

* Add GUI config option to disable auto loading model stats 
lib/gui/control_helper.py