treewide: replace go_binary_with_tag

Instead of using go_binary_with_tag, we can write a go_binary rule which
embeds the library. Then we can easily change all the Go configs, not
just tags.

By default, Gazelle generates the libraries for a go_binary with private
visibility, so we need to override it to pulic. The go_binary_with_tag
rule had the additional feature of combining the specified tags with the
incoming ones (osusergo, netgo); instead I added those manually.

Change-Id: I23965176f87e3a0bbd18ba5a72f190e4f9047363
Reviewed-on: https://review.monogon.dev/c/monogon/+/4157
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/build/bazel/go.MODULE.bazel b/build/bazel/go.MODULE.bazel
index 120f4c8..eb4aea5 100644
--- a/build/bazel/go.MODULE.bazel
+++ b/build/bazel/go.MODULE.bazel
@@ -161,6 +161,8 @@
     "github.com/opencontainers/runc": {
         "directives": [
             "gazelle:build_tags seccomp",
+            # Make @com_github_opencontainers_runc//:runc_lib visible
+            "gazelle:go_visibility //visibility:public",
         ],
         "patches": [
             "//third_party/com_github_opencontainers_runc:runc-add-cdeps.patch",
@@ -178,6 +180,8 @@
         "directives": [
             "gazelle:proto disable",
             "gazelle:build_tags nowasm",
+            # Make @com_github_sqlc_dev_sqlc//cmd/sqlc:sqlc_lib visible
+            "gazelle:go_visibility //visibility:public",
         ],
     },
     "github.com/containerd/ttrpc": {