Add collapsible widget class
Add widgets to collapsible widget

Instead of keeping its own main widget, the collapsible widget depends
on the user to provide the main widget.
Hide and unhide the main widget when the button is pressed
Add the option to collapse the widget without pressing the button
Cosmetic changes to CollapsibleWidget
Put CollapsibleWidget's main widget inside a QFrame
Add a +/- symbol at the end of the CollapsibleWidget's header button

I would have rather put an up/down arrow icon, but this also works.
To get this to work easily, I just added a horizontal layout to the
button and gave it two labels: one for the title and one for the +/-.