Work toward ONOS-1451: Separate Event Key space per instance

Misc changes and cleanup (Step 3):

* Enabled the usage of ONOS Instance ID inside class TopologyEvent
  - Added the ONOS Instance ID as part of the TopologyEvent key
  - Use the ONOS Instance ID inside method toString() and equals()
  - Also, added new method TopologyEvent.getIDasByteBuffer()

* Added support for Mastership Events inside class TopologyEvents,
  including the JSON output.
  NOTE: For now the JSON output for the Topology object itself doesn't
  contain the corresponding Mastership info. The need for
  adding such info is TBD.

* Added new class TopologyEventFilter that will perform the filtering
  if incoming events. For now the internal logic of this filter is empty.

* Reordered some of the MastershipEvent-related code right before the
  SwitchEvent-related code so it is more consistent.

Change-Id: I940c4686b776f5136a10c25bc49278b69c548fc5
diff --git a/src/test/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModuleTest.java b/src/test/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModuleTest.java
index 184499f..8f179db 100644
--- a/src/test/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModuleTest.java
+++ b/src/test/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModuleTest.java
@@ -20,6 +20,7 @@
 import net.onrc.onos.core.intent.ShortestPathIntent;
 import net.onrc.onos.core.topology.HostEvent;
 import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.MastershipEvent;
 import net.onrc.onos.core.topology.MockTopology;
 import net.onrc.onos.core.topology.PortEvent;
 import net.onrc.onos.core.topology.SwitchEvent;
@@ -455,6 +456,7 @@
                 hasIntentWithIdAndState("3___0", IntentState.INST_ACK));
 
         //  Remove one of the links and check results
+        final List<MastershipEvent> emptyMastershipEvents = new LinkedList<>();
         final List<SwitchEvent> emptySwitchEvents = new LinkedList<>();
         final List<PortEvent> emptyPortEvents = new LinkedList<>();
         final List<HostEvent> emptyHostEvents = new LinkedList<>();
@@ -472,7 +474,9 @@
         removedLinkEvents.add(linkEvent1);
         removedLinkEvents.add(linkEvent2);
 
-        topologyEvents = new TopologyEvents(emptySwitchEvents,
+        topologyEvents = new TopologyEvents(emptyMastershipEvents,
+                                            emptyMastershipEvents,
+                                            emptySwitchEvents,
                                             emptySwitchEvents,
                                             emptyPortEvents,
                                             emptyPortEvents,
@@ -690,6 +694,7 @@
 
 
         //  Remove one of the links and check results
+        final List<MastershipEvent> emptyMastershipEvents = new LinkedList<>();
         final List<SwitchEvent> emptySwitchEvents = new LinkedList<>();
         final List<PortEvent> emptyPortEvents = new LinkedList<>();
         final List<HostEvent> emptyHostEvents = new LinkedList<>();
@@ -707,7 +712,9 @@
         removedLinkEvents.add(linkEvent1);
         removedLinkEvents.add(linkEvent2);
 
-        topologyEvents = new TopologyEvents(emptySwitchEvents,
+        topologyEvents = new TopologyEvents(emptyMastershipEvents,
+                                            emptyMastershipEvents,
+                                            emptySwitchEvents,
                                             emptySwitchEvents,
                                             emptyPortEvents,
                                             emptyPortEvents,
@@ -759,7 +766,9 @@
         addedLinkEvents.add(linkEvent1);
         addedLinkEvents.add(linkEvent2);
 
-        topologyEvents = new TopologyEvents(emptySwitchEvents,
+        topologyEvents = new TopologyEvents(emptyMastershipEvents,
+                                            emptyMastershipEvents,
+                                            emptySwitchEvents,
                                             emptySwitchEvents,
                                             emptyPortEvents,
                                             emptyPortEvents,
diff --git a/src/test/java/net/onrc/onos/core/intent/runtime/UseCaseTest.java b/src/test/java/net/onrc/onos/core/intent/runtime/UseCaseTest.java
index 990ca6b..1d85984 100644
--- a/src/test/java/net/onrc/onos/core/intent/runtime/UseCaseTest.java
+++ b/src/test/java/net/onrc/onos/core/intent/runtime/UseCaseTest.java
@@ -33,6 +33,7 @@
 import net.onrc.onos.core.topology.ITopologyListener;
 import net.onrc.onos.core.topology.ITopologyService;
 import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.MastershipEvent;
 import net.onrc.onos.core.topology.MockTopology;
 import net.onrc.onos.core.topology.PortEvent;
 import net.onrc.onos.core.topology.SwitchEvent;
@@ -230,6 +231,8 @@
 
     @Test
     public void rerouteShortestPaths() throws FloodlightModuleException {
+        List<MastershipEvent> addedMastershipEvents = new LinkedList<>();
+        List<MastershipEvent> removedMastershipEvents = new LinkedList<>();
         List<SwitchEvent> addedSwitchEvents = new LinkedList<>();
         List<SwitchEvent> removedSwitchEvents = new LinkedList<>();
         List<PortEvent> addedPortEvents = new LinkedList<>();
@@ -281,7 +284,9 @@
         removedLinkEvents.add(linkEvent1);
         removedLinkEvents.add(linkEvent2);
 
-        topologyEvents = new TopologyEvents(addedSwitchEvents,
+        topologyEvents = new TopologyEvents(addedMastershipEvents,
+                                            removedMastershipEvents,
+                                            addedSwitchEvents,
                                             removedSwitchEvents,
                                             addedPortEvents,
                                             removedPortEvents,
@@ -314,7 +319,9 @@
         addedLinkEvents.add(linkEvent1);
         addedLinkEvents.add(linkEvent2);
 
-        topologyEvents = new TopologyEvents(addedSwitchEvents,
+        topologyEvents = new TopologyEvents(addedMastershipEvents,
+                                            removedMastershipEvents,
+                                            addedSwitchEvents,
                                             removedSwitchEvents,
                                             addedPortEvents,
                                             removedPortEvents,