webadmin: Improve UI Plugin tab API

GWTP/infrastructure changes
---------------------------

 1. Introduced AbstractTabPresenter as the parent presenter
    for AbstractMainTabPresenter and AbstractSubTabPresenter.

 2. Adding custom action buttons to existing main/sub tabs
    is now done via AddTabActionButtonEvent handled by
    AbstractTabPresenter via @ProxyEvent. EventBus provides
    loose coupling between caller (PluginUiFunctions) and
    handler (AbstractTabPresenter).

 3. Minor improvements in ActionButtonDefinition interface:
    - isAccessible() now accepts selected items for consistency
      with ActionButtonInterface.isAccessible()
    - getUniqueId() can now return null (no ID available)
    - getToolTip() renamed to getButtonToolTip()
    - getCustomToolTip() renamed to getMenuItemToolTip()

 4. Updated AbstractActionPanel according to changes in
    ActionButtonDefinition interface.

 5. Introduced AbstractButtonDefinition as base implementation
    of ActionButtonDefinition interface. This class is used
    for both existing buttons (UiCommandButtonDefinition) and
    custom buttons (extend AbstractButtonDefinition directly).

UI Plugin API changes
---------------------

 6. Revamped EntityType enum, added missing entity types:
    - Network
    - Pool
    - GlusterVolume
    - Provider
    - User
    - Quota
    - Event

 7. addSubTab and addMainTabActionButton API now support
    all entity types.

 8. Introduced addSubTabActionButton API with following
    signature:

    addSubTabActionButton(
        mainTabEntityTypeName,  // Which main tab?
        subTabEntityTypeName,   // Which sub tab?
        label,
        actionButtonInterface)

    For now, subTabEntityTypeName supports only 'Event'
    value.

 9. Updated EntityObject with basic property mappings
    for new entity types.

10. Added <EntityType>SelectionChange event handler
    functions for new entity types

Change-Id: I2f3e33844693a08352cc54b60b05b3f6ac5eb816
Bug-Url: https://bugzilla.redhat.com/953989
Signed-off-by: Vojtech Szocs <vszocs@redhat.com>