Instruction related fixes

- Removed redundant equality check. (ONOS-975)
- Enforced using Instruction Factory methods.
- cosmetic fixes.

Change-Id: I178b55f8568c1a9132f0aa88465b8b34dc2b2df2
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
index 5135557..2288898 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
@@ -80,7 +80,7 @@
     public abstract L2SubType subtype();
 
     @Override
-    public Type type() {
+    public final Type type() {
         return Type.L2MODIFICATION;
     }
 
@@ -92,7 +92,7 @@
         private final L2SubType subtype;
         private final MacAddress mac;
 
-        public ModEtherInstruction(L2SubType subType, MacAddress addr) {
+        ModEtherInstruction(L2SubType subType, MacAddress addr) {
 
             this.subtype = subType;
             this.mac = addr;
@@ -126,16 +126,13 @@
             if (obj instanceof ModEtherInstruction) {
                 ModEtherInstruction that = (ModEtherInstruction) obj;
                 return  Objects.equals(mac, that.mac) &&
-                        Objects.equals(this.type(), that.type()) &&
                         Objects.equals(subtype, that.subtype);
-
             }
             return false;
         }
-
-
     }
 
+    // TODO This instruction is reused for Pop-Mpls. Consider renaming.
     public static final class PushHeaderInstructions extends
             L2ModificationInstruction {
 
@@ -191,7 +188,7 @@
 
         private final VlanId vlanId;
 
-        public ModVlanIdInstruction(VlanId vlanId) {
+        ModVlanIdInstruction(VlanId vlanId) {
             this.vlanId = vlanId;
         }
 
@@ -222,15 +219,10 @@
             }
             if (obj instanceof ModVlanIdInstruction) {
                 ModVlanIdInstruction that = (ModVlanIdInstruction) obj;
-                return  Objects.equals(vlanId, that.vlanId) &&
-                        Objects.equals(this.type(), that.type()) &&
-                        Objects.equals(this.subtype(), that.subtype());
-
+                return  Objects.equals(vlanId, that.vlanId);
             }
             return false;
         }
-
-
     }
 
     /**
@@ -240,7 +232,7 @@
 
         private final Byte vlanPcp;
 
-        public ModVlanPcpInstruction(Byte vlanPcp) {
+        ModVlanPcpInstruction(Byte vlanPcp) {
             this.vlanPcp = vlanPcp;
         }
 
@@ -271,26 +263,22 @@
             }
             if (obj instanceof ModVlanPcpInstruction) {
                 ModVlanPcpInstruction that = (ModVlanPcpInstruction) obj;
-                return  Objects.equals(vlanPcp, that.vlanPcp) &&
-                        Objects.equals(this.type(), that.type()) &&
-                        Objects.equals(this.subtype(), that.subtype());
-
+                return  Objects.equals(vlanPcp, that.vlanPcp);
             }
             return false;
         }
-
     }
 
 
     /**
      * Represents a MPLS label modification.
      */
-    public static final class ModMplsLabelInstruction extends
-    L2ModificationInstruction {
+    public static final class ModMplsLabelInstruction
+            extends L2ModificationInstruction {
 
         private final MplsLabel mplsLabel;
 
-        public ModMplsLabelInstruction(MplsLabel mplsLabel) {
+        ModMplsLabelInstruction(MplsLabel mplsLabel) {
             this.mplsLabel = mplsLabel;
         }
 
@@ -321,10 +309,7 @@
             }
             if (obj instanceof ModMplsLabelInstruction) {
                 ModMplsLabelInstruction that = (ModMplsLabelInstruction) obj;
-                return Objects.equals(mplsLabel, that.mplsLabel) &&
-                        Objects.equals(this.type(), that.type());
-
-
+                return Objects.equals(mplsLabel, that.mplsLabel);
             }
             return false;
         }
@@ -333,10 +318,10 @@
     /**
      * Represents a MPLS TTL modification.
      */
-    public static final class ModMplsTtlInstruction extends
-            L2ModificationInstruction {
+    public static final class ModMplsTtlInstruction
+            extends L2ModificationInstruction {
 
-        public ModMplsTtlInstruction() {
+        ModMplsTtlInstruction() {
         }
 
         @Override