route: Ensure nexthops are reregistered correctly

Reregister prefixes if nexthops don't change
Remove invalid nexthops instead of all of them
Cancel FibEntry expiration events before scheduling new ones
Remove FibEntry refreshing
Add grace period to LSA expiration

refs: #1892

Change-Id: I5136b6b0f52a47b6ba72e04b0cea81b85ebccd45
diff --git a/src/route/nexthop-list.hpp b/src/route/nexthop-list.hpp
index c34400d..7c2011e 100644
--- a/src/route/nexthop-list.hpp
+++ b/src/route/nexthop-list.hpp
@@ -72,6 +72,20 @@
     return m_nexthopList;
   }
 
+  typedef std::list<NextHop>::iterator iterator;
+
+  iterator
+  begin()
+  {
+    return m_nexthopList.begin();
+  }
+
+  iterator
+  end()
+  {
+    return m_nexthopList.end();
+  }
+
   void
   writeLog();