Refactoring of MessageBox & QMessageBox widgets

* MessageBox: Remove default (void) constructor.
* MessageBox: Remove operator = method overload.
* MessageBox: Set minimum size.
* MesageBox: Phase out the Text object setters, in favor of the more
robust internal construction of Text objects from variable arguments --
alike what we had developed in the branch 'feature/FontResource').
* MesageBox: Initial refactoring of events code to match recent work
done in other widgets.

* QuestionDialogBox: Remove default (void) constructor.
* QuestionDialogBox: Remove operator = method overload.
* QuestionDialogBox: Initial refactoring of events code to match recent
work done in other widgets.
* QuestionDialogBox: Introduce append_choice setter for text strings.
* QuestionDialogBox: Initial refactoring of the internal updating
and handling of Text objects (should be done more like ListBox).
Break examples/gui.cpp into multiple files
Disable auto-calling widget's update method on every frame

* Major efficiency / performance boost, as we are now calling it
internally only when needed.