Consolidate rust_prost_library and fix extension-only proto generation. (#2047)

This PR consolidates rust_prost_library and rust_tonic_library into one rule; `rust_prost_library`. `rust_prost_library` will generate tonic services if you provide a `tonic_plugin` in the toolchain definition. If you do not provide that plugin and you try to build a proto with services, it will print a warning that you should add a `tonic_plugin`.

This PR also handles extension-only proto files. Prost does not generate a file if there are no messages, enums, or services and it appears that Prost doesn't even support proto2 extensions. So to work around this issue, protoc_wrapper will generate an empty `.rs` file in the case that there are only extensions defined in a file.

Closes: #2046 
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
index fe4399d..c412e2f 100644
--- a/WORKSPACE.bazel
+++ b/WORKSPACE.bazel
@@ -52,6 +52,10 @@
 
 rules_rust_test_deps()
 
+load("//test:deps_transitive.bzl", "rules_rust_test_deps_transitive")
+
+rules_rust_test_deps_transitive()
+
 # --- end stardoc
 
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")