Use sockaddr_storage for peeraddr, not sockaddr_in6
Move the sendto to udp_write; cope with EMSGSIZE

Most of the time, the first sendto should succeed. But if we get an
EMSGSIZE error, we retry with a packet half the size, until we find
an acceptable size, and then proceed to send the original buffer in
chunks of that size.

(After all that, it seems hardly worth the trouble.)