[WFLY-266] Notification Support

* add notifications to AS7 resources description
  * notifications are described in :read-resource-description operation
    if the notifications boolean is true
  * all resources emit 3 types of notifications by default:
    - resource-added
    - resource-removed
    - attribute-value-written
* NotificationDefinition let any resources describe the notifications
  they can emit by registering them in the ManagementResourceRegistration
[WFLY-266] Notification Support

* add test to check notifications in :read-resource-description
  operation
[WFLY-266] Notification Support

* add NotificationService to let AS7 resource register/unregister
  notification handlers and emit notifications
[WFLY-266] Notification Support

* emit notifications:
  * when a resource is added using AbstractAddStepHandler
  * when a resource is removed using AbstractRemoveStepHandler
[WFLY-266] Notification Support

* emit notifications when an attribute value is written using AbstractWriteAttributeHandler
[WFLY-266] Notification Support

clean up tests
[WFLY-266] Notification Support

refactor notifications handling to send them in a ResultHandler instead
of adding an OperationStep
[WFLY-266] Notification Support

* add test to validate notification orders emitted by a composite
  operation
[WFLY-266] Notification Support

* expose the NotificationSupport directly from the OperationContext. the
  instance is held by the OperationContext's modelController
[WFLY-266] Notification Support

emission of notifications happens synchronously if no executor service
is passed to the NotificationSupportImpl constructor
[WFLY-266] Notification Support

Let OperationContext implements NotificationSupport directly.
Its impl delegates to the model controller's notification support.
[WFLY-266] Notification Support

* add Notification HTTP handler based on Undertow
* add a getNotificationSupport() method to the ModelController interface
  to be able to access it from the NotificationApiHandler (through the
  HTTP management service)
[WFLY-266] Notification Support

* add tests for the Notification HTTP API
* emit a notification when a logging resource is added
[WFLY-266] Notification Support

moved notification-related result handlers to
NotificationResultHandlers
[WFLY-266] Notification Support

move notification HTTP API under /management/notification base URL
[WFLY-266] Notification support

add notifications for domain when a server-config is
started/stopped/restarted
[WFLY-266] Notification Support

Notification emitted by OperationContext.emit(Notification) are
effectively sent at the end of the operation execution if it is
successful. This ensure that the order of notifications emitted by a
single OperationContext will be received in the same order (unless
they are emitted during the ResultHandler execution).
[WFLY-266] Notification Support

move notification's interface to controller-client so that
the ModelController client provides a way to register/unregister
notification handlers
[WFLY-266] Notification support

emit notification for resource added/removed and attribute-value-written
directly from the AbstractOperationContext.
[WFLY-266] Notification support

code cleanup