treewide: switch to gomod and bump everything

This switches version resolution from fietsje to gomod and updates
all Go dependencies. It also bumps rules_go (required by gVisor) and
switches the Gazelle naming convention from go_default_xxx to the
standard Bazel convention of the default target having the package
name.

Since Kubernetes dropped upstream Bazel support and doesn't check in
all generated files I manually pregenerated the OpenAPI spec. This
should be fixed, but because of the already-huge scope of this CL
and the rebase complexity this is not in here.

Change-Id: Iec8ea613d06946882426c2f9fad5bda7e8aaf833
Reviewed-on: https://review.monogon.dev/c/monogon/+/639
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
Reviewed-by: Leopold Schabel <leo@nexantic.com>
diff --git a/third_party/go/patches/runc-add-cdeps.patch b/third_party/go/patches/runc-add-cdeps.patch
new file mode 100644
index 0000000..fd15c15
--- /dev/null
+++ b/third_party/go/patches/runc-add-cdeps.patch
@@ -0,0 +1,10 @@
+--- a/libcontainer/seccomp/patchbpf/BUILD.bazel	2022-03-24 20:12:34.325421847 +0100
++++ b/libcontainer/seccomp/patchbpf/BUILD.bazel	2022-03-24 20:12:59.777602881 +0100
+@@ -7,6 +7,7 @@
+         "enosys_unsupported.go",
+     ],
+     cgo = True,
++    cdeps = ["@seccomp"],
+     importpath = "github.com/opencontainers/runc/libcontainer/seccomp/patchbpf",
+     visibility = ["//visibility:public"],
+     deps = select({