network_manager: Implement interface rename

Now that we persist the interface data, we can recreate the object when
the name changes.

Change-Id: I3b6de84ba20e3a7917e60283a29fbac007bfc6cc
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index 8dc14e6..135c002 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -122,15 +122,16 @@
     if (auto it = interfacesByIdx.find(info.intf.idx);
         it != interfacesByIdx.end())
     {
-        it->second->updateInfo(info.intf);
         if (info.intf.name && *info.intf.name != it->second->interfaceName())
         {
-            fmt::print(stderr, "Interface name change detected {} -> {}\n",
-                       it->second->interfaceName(), *info.intf.name);
-            fflush(stderr);
-            std::abort();
+            interfaces.erase(it->second->interfaceName());
+            interfacesByIdx.erase(it);
         }
-        return;
+        else
+        {
+            it->second->updateInfo(info.intf);
+            return;
+        }
     }
     if (!info.intf.name)
     {