Upgrade bazel to 4.0.0rc2

A few things of note here:
- I disabled a few incompatible flags in order to minimize the number
  of changes we have to deal with.
- I had to upgrade the typescript rules because the old ones didn't
  work with new bazel anymore. That brought a typescript compiler
  upgrade along. This in turn required me to turn off strict mode.
  Otherwise, there are a _ton_ of errors in our typescript files. The
  vast majority of them are related to `null` checking.
- The `default_python_version` attribute on Python rules doesn't exist
  anymore. It's now replaced by `python_version`.
- I removed the CROSSTOOL in favour of a Starlark-equivalent
  configuration function. See `tools/cpp/toolchain_config.bzl` for
  more details. This new file is auto-generated using the migration
  tools from `rules_cc`. I have made no attempt to beautify this file.
  Relatedly, all CROSSTOOL-related files/functionality are gone as well.
- The `config_setting` targets to detect the compiler names had to
  change. This is perhaps not surprising. Thanks to Austin for
  pointing this out to me.
- The `cc_toolchain` targets all required `ar_files` and `as_files`
  attributes where they didn't before. Not really sure what changed,
  but the compilations appears to work with these changes.

Change-Id: I2317e5160fa3f8d87f94106b0c3b328918d0c42c
diff --git a/third_party/bazel/BUILD b/third_party/bazel/BUILD
index ed1724a..282cdad 100644
--- a/third_party/bazel/BUILD
+++ b/third_party/bazel/BUILD
@@ -2,6 +2,7 @@
 
 # Generated from Bazel's
 # 30df02a567cbd8a307b96037f0960fca66a5deaf://src/main/protobuf/extra_actions_base.proto.
+# TODO(phil): Update this once we upgrade protobuf.
 py_library(
     name = "extra_actions_proto_py",
     srcs = [
@@ -9,14 +10,3 @@
     ],
     visibility = ["//visibility:public"],
 )
-
-# Generated from Bazel's
-# aa7e972dbc96aa94f86522d452089dc30f6dbbcd://src/main/protobuf/crosstool_config.proto.
-py_library(
-    name = "crosstool_config_proto_py",
-    srcs = [
-        "protos/crosstool_config_pb2.py",
-    ],
-    visibility = ["//visibility:public"],
-    deps = ["@com_google_protobuf//:protobuf_python"],
-)