in favor of discoverInterfaces().
if we have to do NIC discovery ourselves, then at least
avoid mixing our results with the similar, but not identical
results of osiSockDiscoverBroadcastAddresses() from Base.
change interface to distingush between bcast and point2point.
add netmask to truly distinguish unicast from bcast.
fix some minor (I think) errors in the bsd socks impl (use of clobbered buffer).
cleanup win32 impl. bcast and p2p handling.
Calling code can't deal with "cache" miss,
which indicates either a protocol error (use of invalid ID),
or a logic error on our part (didn't save ID).
In either case, better to throw an exception than to crash.
with bcast interfaces, send searches to bcast address
and !WIN32 binds bcast address to receive searches.
with point to point, send searches to dest address.
can't bind dest address (not local).
quiets spurious error message:
> Error binding socket: Cannot assign requested address.
Encountered with a P2P link setup by openvpn.
This approach works OK, but makes it much harder to find files
that have mistakes in them since they can cause other functions
to get the wrong import/export setting.