DHCPv[46] relay must replace the route instead of adding an extra NH

Currently DHCP relay adds an extra next-hop to an already existing route (if any). Instead
it must replace it with the new one.

This patch adds replaceRoute method to the RouteStore interface and corresponding implementations.
The DHCP relay implementation uses the new method instead of updateRoute

Change-Id: I601613168b83290db4e53d2aae5c86e963ae17b0
diff --git a/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java b/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java
index 6866762..5eaa898 100644
--- a/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java
+++ b/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java
@@ -17,6 +17,7 @@
 package org.onosproject.routeservice;
 
 import com.google.common.annotations.Beta;
+import org.apache.commons.lang3.NotImplementedException;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.IpPrefix;
 import org.onosproject.store.Store;
@@ -44,6 +45,16 @@
     void removeRoute(Route route);
 
     /**
+     * Replaces the all the routes for a prefix
+     * with the given route.
+     *
+     * @param route route
+     */
+    default void replaceRoute(Route route) {
+        throw new NotImplementedException("replaceRoute is not implemented");
+    }
+
+    /**
      * Returns the IDs for all route tables in the store.
      *
      * @return route table IDs