Adding some base-classes to eliminate event and listener boiler-plate code throughout a number of subsystems.

Refactored all core components to take advantage of this; apps remain to be done.

Change-Id: Ib0935ba07ff81b0fa032534004ec9ac6187cbf22
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
index 612fbc7..02052c3 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
@@ -4,6 +4,7 @@
 import java.util.Set;
 
 import com.google.common.annotations.Beta;
+import org.onosproject.event.ListenerService;
 import org.onosproject.net.DeviceId;
 
 import com.google.common.collect.Multimap;
@@ -12,7 +13,8 @@
  * Service for providing label resource allocation.
  */
 @Beta
-public interface LabelResourceService {
+public interface LabelResourceService
+    extends ListenerService<LabelResourceEvent, LabelResourceListener> {
 
     /**
      * Returns labels from resource pool by a specific device id.
@@ -95,17 +97,4 @@
      */
     LabelResourcePool getGlobalLabelResourcePool();
 
-    /**
-     * Adds the specified label resource listener.
-     *
-     * @param listener label resource listener
-     */
-    void addListener(LabelResourceListener listener);
-
-    /**
-     * Removes the specified label resource listener.
-     *
-     * @param listener label resource listener
-     */
-    void removeListener(LabelResourceListener listener);
 }