Add init debugging support

This adds Delve into the initramfs and a conditional hook which attaches Delve to our init
after the network is up. This allows for breakpoint-debugging the init itself, at least after the
very early node bringup.

Test Plan:
`bazel run -c dbg //:launch`, then use IDEA's Go Remote target to connect to localhost:2345
and set a breakpoint.

Bug: T786

X-Origin-Diff: phab/D581
GitOrigin-RevId: f6b32e7b7f4d36c8492df3e11ee97588817dbd8e
diff --git a/core/internal/common/setup.go b/core/internal/common/setup.go
index 531b688..fa5cd59 100644
--- a/core/internal/common/setup.go
+++ b/core/internal/common/setup.go
@@ -35,6 +35,7 @@
 	ExternalServicePort = 7836
 	DebugServicePort    = 7837
 	KubernetesAPIPort   = 6443
+	DebuggerPort        = 2345
 )
 
 const (
diff --git a/core/internal/launch/launch.go b/core/internal/launch/launch.go
index 8aa865f..774b432 100644
--- a/core/internal/launch/launch.go
+++ b/core/internal/launch/launch.go
@@ -148,7 +148,7 @@
 }
 
 var requiredPorts = []uint16{common.ConsensusPort, common.NodeServicePort, common.MasterServicePort,
-	common.ExternalServicePort, common.DebugServicePort, common.KubernetesAPIPort}
+	common.ExternalServicePort, common.DebugServicePort, common.KubernetesAPIPort, common.DebuggerPort}
 
 // IdentityPortMap returns a port map where each VM port is mapped onto itself on the host. This is mainly useful
 // for development against Smalltown. The dbg command requires this mapping.