Introduce tests HorizontalLayout & VerticalLayouts for layout tests
Match class var naming of unit tests in gui_button & gui_listbox

* examples/gui_button.cpp: Rename button class vars

button_ex0 -> button0
button_ex1 -> button1
button_ex2 -> button2

* examples/gui_listbox.cpp: Rename listbox class vars

listbox_ex0 -> listbox0
listbox_ex1 -> listbox1
listbox_ex2 -> listbox2
Introduce minimal UIWidget ctor

* Introduce UIWidget::initialize (helper method for construction).

* Introduce nom::AUTO_ID const var.
Fix building of app example

	MessageBox:
* Rename ::set_title_label to ::set_title
* Rename ::set_message_label to ::set_message
Fix bug where setting Button's font does not update its text label

* UIEvent: Introduce ON_WIDGET_UPDATE && WIDGET_UPDATE
enumerations.

* UIWidget: Emit a ON_WIDGET_UPDATE event upon setting a font;
this allows widgets the chance to internally update their state
to use the new font.

* Button: Register event listener for ON_WIDGET_UPDATE and implement
event callback for it.

* UIWidget: Remove code duplication by calling ::set_font( Font& )
within ::set_font( Font* ).