Generalize action menus

Takes the classes.gui.about's Action class and generalizes it to a more
reusable Action class, moving it to classes.gui.common.
Introducing the Bundle class

This allows for cleaner initialization and access of "bundles" of
related items instead of using dicts.
Consistent handling of base/common classes

Standardizes the base and common classes are named and access across the
classes.gui and classes.services packages.
Split bits of Config window off into base Dialog

This will allow all future dialog window to share components, like the
banner.
Eliminate paths and regex modules

These constants have moved into the regular init module.
Move _create_buttons to base class

These okay/cancel buttons are present on all widgets, and can used
throughout the system.
Buttons and move the delayed UI construction

Introduces buttons into the UI mix.

Unfortunately, the delayed construction code needed to be moved and
reworked. The Qt dialog/modal/parent functionality only works properly
when construction happens with the parent already known, so we cannot
keep a form in memory once it's loaded.

Instead, we can defer construction of a form until it's clicked, and
that is nice, but if the button or menu action that is responsible for
triggering the form goes away, then the form needs to be disposed of.

We can, however, maintain the same form in memory as long as the button
or menu action responsible for triggering it stays alive.
Correctly set icon on all modal dialogs

This fixes all three dialog types to use the speaker icon, as used on
their buttons and menus.