Implement Block PVCs in our storage backend

This implements full support for Block PVCs in our Kubernetes storage backend.
The block PVCs are backed by files made available to the pods using loop devices and
have read-only and online expansion support.

This also requires a Kubernetes patch because they call losetup if block PVCs are used
with CSI to establish a form of lock on the backing block device. This lock is not
exclusive and does absolutely nothing for our use case and could get very expensive
on dense machines so I removed it.

Test Plan: Comes with E2E tests

X-Origin-Diff: phab/D746
GitOrigin-RevId: 430d3f445286c0d3498b2153df333a19f3fcab89
diff --git a/third_party/go/repositories.bzl b/third_party/go/repositories.bzl
index 6b8fb6a..ca62c5c 100644
--- a/third_party/go/repositories.bzl
+++ b/third_party/go/repositories.bzl
@@ -2593,6 +2593,7 @@
             "//third_party/go/patches:k8s-native-metrics.patch",
             "//third_party/go/patches:k8s-use-native.patch",
             "//third_party/go/patches:k8s-revert-seccomp-runtime-default.patch",
+            "//third_party/go/patches:k8s-removed-block-device-pseudo-locks.patch",
         ],
         pre_patches = [
             "//third_party/go/patches:k8s-e2e-tests-providerless.patch",