if: Bandaid ifa_ifwithnet() for ifaddrs w/ same netmask
The original ifaddr selection logic would cause trouble for
SO_DONTROUTE sockets, if following stuffs happened:
ifconfig drv0 inet a.b.c.1
ifconfig drv0 down
ifconfig drv1 inet a.b.c.2
The original ifaddr selection logic in ifa_ifwithnet() will
select a.b.c.1@drv0, which is down. Instead, a.b.c.2@drv1
should be selected.
We thus prefer ifaddr w/ IFF_UP interface or is routable.
Same bandaid probably should be applied to ifa_ifwithdstaddr(),
ifa_ifwithaddr() [broadcast part], and ifaof_ifpforaddr() too.