UIEvent: Introduce additional event types

* Widgets have not yet been refactored to use the new event
enumerations.
UIEvent: Rename class to UIWidgetEvent
UIEventDispatcher.hpp: Introduce NOM_CONNECT_UIEVENT macro

config.hpp.in: Re-order parameters of NOM_BIND macro
Use UIWidgetEvent's new UIEventType enum types

* UIWidgetEvent: Introduce event types for top-level widget (window).

* UIWidgetEvent: Introduce constructor with argument for setting id
field.

* UIWidget: Change event emission type to WINDOW_MOUSE_DOWN for
SDL_MOUSEDOWN events.

* examples/gui: Re-enable listbox example event listeners; now that
we have cleaned up the event types, these function as intended again.

* examples/gui: Add dumping of UIWidgetEvent's id field in the callback
methods and clean up (minimize) the debugging output of the callback
methods.
Set the widget's unique ID for the callback's event object

* UIWidget: Set the SDL_Window's unique identifier for the UIWidgetEvent
object passed onto assigned callback.

* examples/gui: Re-enable gui_window[0] mouse button clicks listener.