metropolis: unify utility packages

One last sweeping rename / reshuffle.

We get rid of //metropolis/node/common and //golibs, unifying them into
a single //metropolis/pkg meta-package.

This is to be documented somwhere properly, but here's the new logic
behind selecting where to place a new library package:

 - if it's specific to k8s-on-metropolis, put it in
   //metropolis/node/kubernetes/*. This is a self-contained tree that
   other paths cannot import from.
 - if it's a big new subsystem of the metropolis core, put it in
   //metropolis/node/core. This can be imported by anything in
   //m/n (eg the Kubernetes code at //m/n/kubernetes
 - otherwise, treat it as generic library that's part of the metropolis
   project, and put it in //metropolis/pkg. This can be imported by
   anything within //metropolis.

This will be followed up by a diff that updates visibility rules.

Test Plan: Pure refactor, CI only.

X-Origin-Diff: phab/D683
GitOrigin-RevId: 883e7f09a7d22d64e966d07bbe839454ed081c79
diff --git a/metropolis/test/launch/BUILD.bazel b/metropolis/test/launch/BUILD.bazel
index b6245e1..d4bf4cb 100644
--- a/metropolis/test/launch/BUILD.bazel
+++ b/metropolis/test/launch/BUILD.bazel
@@ -6,8 +6,8 @@
     importpath = "git.monogon.dev/source/nexantic.git/metropolis/test/launch",
     visibility = ["//metropolis:__subpackages__"],
     deps = [
-        "//golibs/common:go_default_library",
         "//metropolis/node:go_default_library",
+        "//metropolis/pkg/freeport:go_default_library",
         "//metropolis/proto/api:go_default_library",
         "@com_github_golang_protobuf//proto:go_default_library",
         "@com_github_grpc_ecosystem_go_grpc_middleware//retry:go_default_library",
diff --git a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
index 6507ae4..4b51824 100644
--- a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
+++ b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
@@ -7,7 +7,7 @@
     visibility = ["//visibility:private"],
     deps = [
         "//metropolis/node:go_default_library",
-        "//metropolis/node/common/logbuffer:go_default_library",
+        "//metropolis/pkg/logbuffer:go_default_library",
         "//metropolis/proto/api:go_default_library",
         "//metropolis/test/launch:go_default_library",
         "@com_github_grpc_ecosystem_go_grpc_middleware//retry:go_default_library",
diff --git a/metropolis/test/launch/cli/launch-multi2/main.go b/metropolis/test/launch/cli/launch-multi2/main.go
index 1596e60..553e4ae 100644
--- a/metropolis/test/launch/cli/launch-multi2/main.go
+++ b/metropolis/test/launch/cli/launch-multi2/main.go
@@ -30,7 +30,7 @@
 	"google.golang.org/grpc"
 
 	common "git.monogon.dev/source/nexantic.git/metropolis/node"
-	"git.monogon.dev/source/nexantic.git/metropolis/node/common/logbuffer"
+	"git.monogon.dev/source/nexantic.git/metropolis/pkg/logbuffer"
 	apb "git.monogon.dev/source/nexantic.git/metropolis/proto/api"
 	"git.monogon.dev/source/nexantic.git/metropolis/test/launch"
 )
diff --git a/metropolis/test/launch/launch.go b/metropolis/test/launch/launch.go
index 0cf11bd..21d066b 100644
--- a/metropolis/test/launch/launch.go
+++ b/metropolis/test/launch/launch.go
@@ -39,8 +39,8 @@
 	"golang.org/x/sys/unix"
 	"google.golang.org/grpc"
 
-	freeport "git.monogon.dev/source/nexantic.git/golibs/common"
-	common "git.monogon.dev/source/nexantic.git/metropolis/node"
+	"git.monogon.dev/source/nexantic.git/metropolis/node"
+	"git.monogon.dev/source/nexantic.git/metropolis/pkg/freeport"
 	apb "git.monogon.dev/source/nexantic.git/metropolis/proto/api"
 )
 
@@ -135,8 +135,8 @@
 }
 
 // NodePorts is the list of ports a fully operational Metropolis node listens on
-var NodePorts = []uint16{common.ConsensusPort, common.NodeServicePort, common.MasterServicePort,
-	common.ExternalServicePort, common.DebugServicePort, common.KubernetesAPIPort, common.DebuggerPort}
+var NodePorts = []uint16{node.ConsensusPort, node.NodeServicePort, node.MasterServicePort,
+	node.ExternalServicePort, node.DebugServicePort, node.KubernetesAPIPort, node.DebuggerPort}
 
 // IdentityPortMap returns a port map where each given port is mapped onto itself on the host. This is mainly useful
 // for development against Metropolis. The dbg command requires this mapping.
@@ -465,9 +465,9 @@
 
 // NanoswitchPorts contains all ports forwarded by Nanoswitch to the first VM
 var NanoswitchPorts = []uint16{
-	common.ExternalServicePort,
-	common.DebugServicePort,
-	common.KubernetesAPIPort,
+	node.ExternalServicePort,
+	node.DebugServicePort,
+	node.KubernetesAPIPort,
 }
 
 // ClusterOptions contains all options for launching a Metropolis cluster
@@ -524,7 +524,7 @@
 	copts := []grpcretry.CallOption{
 		grpcretry.WithBackoff(grpcretry.BackoffExponential(100 * time.Millisecond)),
 	}
-	conn, err := portMap.DialGRPC(common.DebugServicePort, grpc.WithInsecure(),
+	conn, err := portMap.DialGRPC(node.DebugServicePort, grpc.WithInsecure(),
 		grpc.WithUnaryInterceptor(grpcretry.UnaryClientInterceptor(copts...)))
 	if err != nil {
 		return nil, nil, fmt.Errorf("failed to dial debug service: %w", err)