Replace net.ResolveUDPAddr with a custom resolveUDPAddr() that:
1. Detects if host is an IP address → uses it directly
2. If it's a domain name → resolves via custom DNS resolver
(public DNS servers: 77.88.8.8, 8.8.8.8, 1.1.1.1, etc.)
3. Falls back to system resolver if custom resolver fails
4. Logs: [DNS] resolved example.com → 1.2.3.4
This enables using domain names instead of IP addresses for:
- -peer (client): e.g. -peer myserver.com:56000
- -listen (server): e.g. -listen myserver.com:56000
- TURN server (resolved from VK API response)
Critical for Android (CGO_ENABLED=0) where the system Go resolver
may not work — the custom resolver queries public DNS servers directly.