Implement some of the missing Selector and Match Conditions

Work toward ONOS-509

The following match conditions are added/implemented:
  - IN_PHY_PORT
  - IP_DSCP
  - IP_ECN
  - METADATA

Change-Id: I6f529ee90b2b9e0d5046f83c034e8be3faf86d8b
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
index e6fdeb2..1ecab71 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
@@ -68,6 +68,22 @@
         public Builder matchInPort(PortNumber port);
 
         /**
+         * Matches a physical inport.
+         *
+         * @param port the physical inport
+         * @return a selection builder
+         */
+        public Builder matchInPhyPort(PortNumber port);
+
+        /**
+         * Matches a metadata.
+         *
+         * @param metadata the metadata
+         * @return a selection builder
+         */
+        public Builder matchMetadata(Long metadata);
+
+        /**
          * Matches a l2 dst address.
          *
          * @param addr a l2 address
@@ -108,6 +124,22 @@
         public Builder matchVlanPcp(Byte vlanPcp);
 
         /**
+         * Matches an IP DSCP (6 bits in ToS field).
+         *
+         * @param ipDscp an IP DSCP value
+         * @return a selection builder
+         */
+        public Builder matchIPDscp(Byte ipDscp);
+
+        /**
+         * Matches an IP ECN (2 bits in ToS field).
+         *
+         * @param ipEcn an IP ECN value
+         * @return a selection builder
+         */
+        public Builder matchIPEcn(Byte ipEcn);
+
+        /**
          * Matches the l3 protocol.
          *
          * @param proto a l3 protocol