Add keys to intents

- use Key class rather than String for intent keys
- add CLI option to specify a string key
- add key field to constructors for connectivity intents
- translate id into a key if no key is specified

Change-Id: I69ffbad93bc3daddf06a67cb0cffa2130e781b37
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentAccumulator.java b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentAccumulator.java
index 2a3e68d..e346613 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentAccumulator.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentAccumulator.java
@@ -19,6 +19,7 @@
 import org.onlab.util.AbstractAccumulator;
 import org.onosproject.net.intent.IntentBatchDelegate;
 import org.onosproject.net.intent.IntentData;
+import org.onosproject.net.intent.Key;
 
 import java.util.Collection;
 import java.util.List;
@@ -57,7 +58,7 @@
     }
 
     private Collection<IntentData> reduce(List<IntentData> ops) {
-        Map<String, IntentData> map = Maps.newHashMap();
+        Map<Key, IntentData> map = Maps.newHashMap();
         for (IntentData op : ops) {
             map.put(op.key(), op);
         }