send_arp: fix for infiniband, re-merge from upstream iputils arping
send_arp.linux.c was created to avoid a libnet dependency.
It was Based on arping from iputils as it was back then,
and adapted to the command line conventions established by
the libnet based send_arp by Matt Soffen,
as it was used by IPaddr and IPaddr2.
On infiniband, the link layer addresses won't fit into a sockaddr_ll,
causing a buffer overflow.
The broadcast address may be different from "all 0xff".
This (and some more) has been fixed meanwhile in iputils arping.
This is just a re-merge from iputils, keeping the few adaptations we
need for IPaddr2 command line conventions, and some static/inline/const
fixes to quiescen the compiler warnings.