fix: wait for Tailscale interface before Caddy/CoreDNS start
Race condition: tailscaled.service starting doesn't mean the interface
has its IP yet. Caddy and CoreDNS bind to the Tailscale IP, so they fail
if started before the interface is ready.
Add tailscale-ready.service that blocks until tailscale0 has the expected
IP, then make Caddy and CoreDNS depend on it.
๐พ Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>