Merge github.com:grpc/grpc into that-which-we-call-a-rose

Introduce resolver_factory
diff --git a/BUILD b/BUILD
index 2f58e29..438e06b 100644
--- a/BUILD
+++ b/BUILD
@@ -161,6 +161,7 @@
     "src/core/client_config/client_config.h",
     "src/core/client_config/lb_policy.h",
     "src/core/client_config/resolver.h",
+    "src/core/client_config/resolver_factory.h",
     "src/core/client_config/subchannel.h",
     "src/core/client_config/subchannel_factory.h",
     "src/core/compression/message_compress.h",
@@ -271,6 +272,7 @@
     "src/core/client_config/client_config.c",
     "src/core/client_config/lb_policy.c",
     "src/core/client_config/resolver.c",
+    "src/core/client_config/resolver_factory.c",
     "src/core/client_config/subchannel.c",
     "src/core/client_config/subchannel_factory.c",
     "src/core/compression/algorithm.c",
@@ -397,6 +399,7 @@
     "src/core/client_config/client_config.h",
     "src/core/client_config/lb_policy.h",
     "src/core/client_config/resolver.h",
+    "src/core/client_config/resolver_factory.h",
     "src/core/client_config/subchannel.h",
     "src/core/client_config/subchannel_factory.h",
     "src/core/compression/message_compress.h",
@@ -485,6 +488,7 @@
     "src/core/client_config/client_config.c",
     "src/core/client_config/lb_policy.c",
     "src/core/client_config/resolver.c",
+    "src/core/client_config/resolver_factory.c",
     "src/core/client_config/subchannel.c",
     "src/core/client_config/subchannel_factory.c",
     "src/core/compression/algorithm.c",
@@ -873,3 +877,30 @@
 
 
 
+
+objc_path = "src/objective-c"
+
+rx_library_path = objc_path + "/RxLibrary"
+
+objc_library(
+    name = "rx_library",
+    hdrs = glob([
+        rx_library_path + "/*.h",
+        rx_library_path + "/transformations/*.h",
+    ]),
+    srcs = glob([
+        rx_library_path + "/*.m",
+        rx_library_path + "/transformations/*.m",
+    ]),
+    includes = [objc_path],
+    deps = [
+        ":rx_library_private",
+    ],
+)
+
+objc_library(
+    name = "rx_library_private",
+    hdrs = glob([rx_library_path + "/private/*.h"]),
+    srcs = glob([rx_library_path + "/private/*.m"]),
+    visibility = ["//visibility:private"],
+)