Add MdnsInterfaceSocket and MdnsSocketProvider

MdnsInterfaceSocket: using for listening the multicast
socket on specific interface.

MdnsSocketProvider: using for creating and managing the
multiple multicast sockets.
- Listen NetworkCallback and TetheringEventCallback to know the
  network connected / disconnected changes. And use the callbacks
  to create / remove the sockets for mdns discovery

Bug: 254166302
Test: atest FrameworksNetTests
Change-Id: Icd8424792e89e71198fa31f9ec92e1ec8172128d
diff --git a/service/Android.bp b/service/Android.bp
index 9371b02..98bbbac 100644
--- a/service/Android.bp
+++ b/service/Android.bp
@@ -203,6 +203,7 @@
     libs: [
         "framework-annotations-lib",
         "framework-connectivity-pre-jarjar",
+        "framework-tethering",
         "framework-wifi",
         "service-connectivity-pre-jarjar",
     ],