Implement PeerTransport interface (SendTo/SupportsPeerRouting) so the
server can route KCP traffic to individual peers by their epoch.
When OnPeerData is set (server mode), each remote epoch gets its own
KCP runtime instead of triggering a reconnect loop.
Also add DNS retry in protect.NewHTTPClient to handle transient
resolver failures.
Fixes#67