CORD-1416 Implement multi-homing probing in HostLocationProvider

Also include following refactoring
    - Refactor the way we generate ARP probe
    - Remove some unused code

Change-Id: I96b1c47bd5731b7b38ef4d19a941d231b5d0054c
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java b/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java
index 41eb504..b324ad0 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java
@@ -16,6 +16,7 @@
 package org.onosproject.net.host;
 
 import org.onlab.packet.IpAddress;
+import org.onlab.packet.MacAddress;
 import org.onosproject.net.HostId;
 import org.onosproject.net.HostLocation;
 import org.onosproject.net.provider.ProviderService;
@@ -57,4 +58,23 @@
      * @param location location of host that vanished
      */
     void removeLocationFromHost(HostId hostId, HostLocation location);
+
+    /**
+     * Notifies HostProviderService the beginning of pending host location verification and
+     * retrieves the unique MAC address for the probe.
+     *
+     * @param hostId ID of the host
+     * @param hostLocation the host location that is under verification
+     * @return probeMac, the source MAC address ONOS uses to probe the host
+     */
+    default MacAddress addPendingHostLocation(HostId hostId, HostLocation hostLocation) {
+        return MacAddress.NONE;
+    }
+
+    /**
+     * Notifies HostProviderService the end of pending host location verification.
+     *
+     * @param probeMac the source MAC address ONOS uses to probe the host
+     */
+    default void removePendingHostLocation(MacAddress probeMac) {}
 }