Extract common ID generation logic using IdBlockAllocator

- Define IdGenerator<T> interface
- Implement AbstractIdBlockAllocatorBasedIdGenerator<T>, which
  has the common logic for the existing IntentId, FlowId, MatchActionId,
  and MatchActionOperationsId generator implementations.

Change-Id: I7aeea249df1710719760ed477bffe62853577e0f
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
index 93a4e6c..4c19cbd 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
@@ -1,5 +1,7 @@
 package net.onrc.onos.api.flowmanager;
 
+import net.onrc.onos.core.util.IdGenerator;
+
 import java.util.Collection;
 
 /**
@@ -65,7 +67,7 @@
      * Gets ID generator for Flow objects.
      * @return the ID generator for Flow objects
      */
-    FlowIdGenerator getFlowIdGenerator();
+    IdGenerator<FlowId> getFlowIdGenerator();
 
     /**
      * Sets a conflict detection policy.