Add WireGuard outbound (#15), gRPC transport (#9), TUIC outbound (#14)
WireGuard outbound (protocol/wireguard/):
- wireguard-go + gVisor netstack (same deps as tailnet)
- Config: private_key, peer_public_key, server, local_address, mtu, reserved
- Supports Cloudflare WARP (reserved bytes for client ID)
- DialContext via netstack, auto-reconnect on connection loss
gRPC transport (transport/grpc/):
- HTTP/2 + gRPC framing over existing TLS connection
- Uses golang.org/x/net/http2.Transport with injected TLS conn
- 5-byte frame prefix (0x00 + 4B BE length) transparent to protocol
- Wired into VMess/VLESS/Trojan outbounds
- Config: "transport": {"type": "grpc", "service_name": "GunService"}
TUIC v5 outbound (protocol/tuic/):
- QUIC-based proxy with UUID + password authentication
- CONNECT command for TCP streams, PACKET for UDP relay
- Heartbeat keepalive, connection pooling with auto-reconnect
- Config: uuid, password, congestion_control, tls
Also: Hysteria2 outbound cleanup (quic.Conn API fixes)