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/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
index 2f50856..980acfe 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
@@ -15,9 +15,6 @@
  */
 package org.onosproject.cli.net;
 
-import static org.onosproject.net.DeviceId.deviceId;
-import static org.onosproject.net.PortNumber.portNumber;
-
 import java.util.List;
 
 import org.apache.karaf.shell.commands.Argument;
@@ -32,6 +29,9 @@
 import org.onosproject.net.intent.IntentService;
 import org.onosproject.net.intent.PointToPointIntent;
 
+import static org.onosproject.net.DeviceId.deviceId;
+import static org.onosproject.net.PortNumber.portNumber;
+
 /**
  * Installs point-to-point connectivity intents.
  */
@@ -67,8 +67,10 @@
 
         List<Constraint> constraints = buildConstraints();
 
-        Intent intent = new PointToPointIntent(appId(), selector, treatment,
-                                               ingress, egress, constraints);
+        Intent intent = new PointToPointIntent(appId(),
+                key(),
+                selector, treatment,
+                ingress, egress, constraints);
         service.submit(intent);
         print("Point to point intent submitted:\n%s", intent.toString());
     }