Implement local_discovery_enabled setting

Implementation will reset entire privet::Manager component if setting was
changed to false, and recreate component if it was changed into true.

Additionally removing of HTTP callback was added.

BUG: 27480269
Change-Id: Ieea91057fc0bdbd5f12c439b791250c9cf6c3741
Reviewed-on: https://weave-review.googlesource.com/2833
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/examples/provider/avahi_client.cc b/examples/provider/avahi_client.cc
index 27fae10..ddd4630 100644
--- a/examples/provider/avahi_client.cc
+++ b/examples/provider/avahi_client.cc
@@ -75,10 +75,10 @@
         service_type.c_str(), nullptr, txt_list.get());
     CHECK_GE(ret, 0) << avahi_strerror(ret);
   } else {
+    avahi_entry_group_reset(group_.get());
     prev_port_ = port;
     prev_type_ = service_type;
 
-    avahi_entry_group_reset(group_.get());
     CHECK(avahi_entry_group_is_empty(group_.get()));
 
     ret = avahi_entry_group_add_service_strlst(
@@ -91,6 +91,9 @@
 }
 
 void AvahiClient::StopPublishing(const std::string& service_name) {
+  prev_port_ = 0;
+  prev_type_.clear();
+
   CHECK(group_);
   avahi_entry_group_reset(group_.get());
 }