Add containerd & gVisor support

This adds containerd, CNI, gVisor and all the necessary shims
and supporting infrastructure. It also enables all relevant features in
the Linux kernel. containerd is designed as a simple supervisor.Runnable.
It is not being started yet, this will happen in D497.

Split out from feature/kubelet.

Test Plan:
Has been tested in conjunction with the rest of D497, will be
covered by a K8s E2E test there.

X-Origin-Diff: phab/D509
GitOrigin-RevId: 92523516b7e361a30da330eb187787e6045bfd17
diff --git a/third_party/go/patches/containerd-build.patch b/third_party/go/patches/containerd-build.patch
new file mode 100644
index 0000000..6a0fcc2
--- /dev/null
+++ b/third_party/go/patches/containerd-build.patch
@@ -0,0 +1,37 @@
+Copyright 2020 The Monogon Project Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+diff --git a/cmd/containerd-shim-runc-v2/BUILD.bazel b/cmd/containerd-shim-runc-v2/BUILD.bazel
+index 516b165..728b4dd 100644
+--- a/cmd/containerd-shim-runc-v2/BUILD.bazel
++++ b/cmd/containerd-shim-runc-v2/BUILD.bazel
+@@ -21,5 +21,6 @@ go_library(
+ go_binary(
+     name = "containerd-shim-runc-v2",
+     embed = [":go_default_library"],
++    pure = "on",
+     visibility = ["//visibility:public"],
+ )
+diff --git a/cmd/containerd/BUILD.bazel b/cmd/containerd/BUILD.bazel
+index 8eed766..9d95be6 100644
+--- a/cmd/containerd/BUILD.bazel
++++ b/cmd/containerd/BUILD.bazel
+@@ -81,5 +81,6 @@ go_library(
+ go_binary(
+     name = "containerd",
+     embed = [":go_default_library"],
++    pure = "on",
+     visibility = ["//visibility:public"],
+ )