Extract shared static-endpoint helpers (allocatePorts, findStaticEndpoints,
ensureNodePortServices, deleteNodePortServices) from proxygroup.go into a
new staticendpoints.go, generalizing them to work with any parent resource
type. Wire static endpoints into the Connector reconciler so that a
ProxyClass with spec.staticEndpoints.nodePort referenced by a Connector
now creates NodePort Services and populates conf.StaticEndpoints in the
tailscaled config. Add a Node watch handler for Connectors to re-reconcile
when node labels or addresses change.
Updates #18819