Support reading output from IptablesRestoreController.

Add the ability to IptablesRestoreController to return the output
of a command. This is useful to run commands that list chains or
return counters through the ip[6]tables-restore.

Also enable unsigned-integer-overflow sanitization the unit tests
because their behaviour should be representative of actual code.
Having address sanitization enabled would have saved a fair
amount of time debugging an on-device abort() that did not affect
the tests.

Test: new unit test passes
Bug: 32323979
Change-Id: I70726ebbade0cb792aba38787c57378df177f2d8
diff --git a/server/NetdConstants.cpp b/server/NetdConstants.cpp
index f8a0d36..ff3fc2c 100644
--- a/server/NetdConstants.cpp
+++ b/server/NetdConstants.cpp
@@ -119,8 +119,13 @@
     return res;
 }
 
+int execIptablesRestoreWithOutput(IptablesTarget target, const std::string& commands,
+                                  std::string *output) {
+    return android::net::gCtls->iptablesRestoreCtrl.execute(target, commands, output);
+}
+
 int execIptablesRestore(IptablesTarget target, const std::string& commands) {
-    return android::net::gCtls->iptablesRestoreCtrl.execute(target, commands);
+    return execIptablesRestoreWithOutput(target, commands, nullptr);
 }
 
 /*