Optimized group updating during host move

In addition,
- Added a fix for host remove issue
- Added a fix for single homed (loc1) to dual homed (loc2).

Change-Id: I1a7344bd77f73d6bed8955dcdbf407b5354d0eee
diff --git a/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java b/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
index 296fbcd..14df622 100644
--- a/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
+++ b/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
@@ -129,6 +129,15 @@
                 });
             }
         });
+
+        int nextId = srManager.getMacVlanNextObjectiveId(location.deviceId(), hostMac, hostVlanId, null, false);
+        if (nextId != -1) {
+            VlanId vlanId = Optional.ofNullable(srManager.getInternalVlanId(location)).orElse(hostVlanId);
+            log.debug(" Updating next objective for device {}, host {}/{}, port {}, nextid {}",
+                                location.deviceId(), hostMac, vlanId, location.port(), nextId);
+            srManager.updateMacVlanTreatment(location.deviceId(), hostMac, vlanId,
+                                location.port(), nextId);
+        }
     }
 
     void processHostRemovedEvent(HostEvent event) {
@@ -181,6 +190,7 @@
                     }
                 });
             });
+
         });
     }