Remove ON_* enumeration values from UIEvent

* Rename UIEvent::INVALID (anonymous enum) to UIEvent::UIEVENT.
* It has been decided to try simplifying the API by supporting
only one event type for every unique signal (no separation between
public and private signals).
Clean up of UIWidgetTreeEvent

* Move header file implementation of UIWidgetTreeEvent to
UIWidgetEvent.cpp.
Re-design DataViewListStore && DataViewList

* Text: Introduce ctor for accepting only a string.
* DataViewColumn: Introduce ctor & operators for support in std::map
storage in DataViewListStore.
* DataViewItem: Introduce selection getters and setters.
* Introduce DataViewDrawableItem support class.
* DataViewTextItem: Change object creation type from nom::String to
nom::Text.

* UIWidgetTreeEvent: Introduce row and selection getters / setters

* DataViewList: Use items from storage for ::draw and ::update.
* DataViewList: Change on_mouse_down event method to on_mouse_up.
* DataViewList: Experimental on_key_down event method.
Phase out usage of Text::Alignment enum

Use the bit-mask friendly alignments from gui_config.hpp.

* Move nom::Alignments and nom::Anchor from gui_config.hpp to types.hpp.

* Remove copy ctor from Text; this is un-necessary as we do not have
pointers or custom resource needs...