[WFLY-266] Notification Support

* add notifications to AS7 resources description
  notifications are described in :read-resource-description operation if
  the notifications boolean is true
* NotificationDefinition let any resources describe the notifications
  they can emit by registering them in the ManagementResourceRegistration
* add NotificationRegistry (exposed by the ModelController) to
  register/unregister notification handlers
* add NotificationSupport to emit notifications during a managemenet
  operations (through OperationContext.emit(Notification))

Notifications 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 execuion).

If the NotificationSupport is created with an ExecutorService, the
delivery of notifications is non-blocking and will not block the
remaining code path of the operation execution.

JIRA: https://issues.jboss.org/browse/WFLY-266
9.x PR: https://github.com/wildfly/wildfly-core/pull/23
[WFCORE-28] Add Global Resource Notifications

* add global notifications for resources:
  * resource-added when a resource is added to the management model
  * resource-removed when a resource is removed from the management
    model
  * attribute-value-written for resources that allow to write
    attributes when an attribute value is successfully changed.
    This notification contains a data set composed of:
    * name - the name of the attribute that has been changed
    * old-value - the value of the attribute before it was changed
    * new-value - the value of the attribute after it was changed

The old-value and new-value are *not* resolved (an attribute that is
undefined and has a default value will return "undefined" as its
old-value).

JIRA: https://issues.jboss.org/browse/WFCORE-28
9.x PR: https://github.com/wildfly/wildfly-core/pull/45
[WFCORE-28] Add global resource notifications

Runtime attributes does not store their values in the resource models
and their read handler must be called before and after their write
handler to get the old and new value of the attribute.

JIRA: https://issues.jboss.org/browse/WFCORE-28
9.x PR: https://github.com/wildfly/wildfly-core/pull/62
[WFLY-3169] Emit local JMX notifications

* Emit JMX notifications based on WildFly's own notifications
* Notification is supported for JMX connections either in-vm (through
  ManagementFactory.getPlatformMBeanServer() or WildFly's
  MBeanServerService) and remotely if the JVM is started with the remote
  monitoring and management
* WildFly remoting-jmx does not support JMX notifications
* WildFLy notification are converted to their idiomatic JMX
  counterpart
  * WildFly's attribute-value-written is converted to JMX's
    AttibuteChangeNotification
  * WildFly's resource-added and resource-removed are converted to JMX's
    MBeanServerNotifications *and* emitted by the
    MBeanServerDelegateMBean (like regular MBeans)

JIRA: https://issues.jboss.org/browse/WFLY-3169
9.x PR: https://github.com/wildfly/wildfly-core/pull/82
[WFLY-266] Notification support

* Refactor the registry for the notification handlers by splitting the map
  into path segments to mitigate the o(n) cost.
* Rename the registry to NotificationHandlerRegistry and move it to the
  org.jboss.as.controller.registry package (leveraging the
  AtomicFieldUdpated of the package too)

JIRA: https://issues.jboss.org/browse/WFLY-266
9.x PR: https://github.com/wildfly/wildfly-core/pull/95
[WFCORE-28] Add Global Resource Notifications

Add the global notification handlers to all tests
that modify resources to remove the warnings about the
emitted notifications not being defined

JIRA: https://issues.jboss.org/browse/WFCORE-28
9.x PR: https://github.com/wildfly/wildfly-core/pull/140
add Global notifications in registerNotifications()

not in registerOperations()
override emit(Notification)

to delegate the notification emission to the primary context
Merge pull request #6694 from jmesnil/WFLY-266_notifications_8.x

[8.x] WildFly Core notifications and local JMX notifications