Add Prost and Tonic rules. (#2033)

* Setup Prost and Tonic rules.

* Regenerate documentation

* Add more tests.

* Add more tests and address feedback.

* Regenerate documentation

* Add to proto docs page.

* Bump min supported bazel version.

* buildifier

* Always enable backtracing.

* Add more info to failing rename.

* Set min rust version to 1.62.0

* Handle rust keywords as package names.

* exclude windows from prost toolchain support.

* buildifier

* redundant

* Use prost-types to parse the file descriptor set.

* Cleanup and more tests.

* Move prost-types to toolchain definition.

* fix rustfmt

* Add example of building protos with complex imports

* impl Display

* Fix all tests

* Add rust checks for the complex import protos.

* Address feedback

* Fix buildifier

* Depend on remote-apis repo.

* Remove bazel remote apis due to file length and transitive dependency issues.

* Update patch and docs.

* Regenerate documentation

* Regenerate documentation

* Update docs.

---------

Co-authored-by: Daniel Wagner-Hall <dwagnerhall@apple.com>
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
index 97c1167..fe4399d 100644
--- a/WORKSPACE.bazel
+++ b/WORKSPACE.bazel
@@ -10,14 +10,18 @@
 
 crate_universe_dependencies(bootstrap = True)
 
-load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
+load("@rules_rust//proto:repositories.bzl", "rust_proto_dependencies", "rust_proto_register_toolchains")
 
-rust_proto_repositories()
+rust_proto_dependencies()
+
+rust_proto_register_toolchains()
 
 load("@rules_rust//proto:transitive_repositories.bzl", "rust_proto_transitive_repositories")
 
 rust_proto_transitive_repositories()
 
+register_toolchains("@rules_rust//proto/prost/private/...")
+
 load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_dependencies", "rust_bindgen_register_toolchains")
 
 rust_bindgen_dependencies()