Use getifaddrs to get the interface-id when not specified
Reimplementing this section also fixes two potential bugs:
1. Only link-local addresses should be used for automatic interface-id
selection, as it should always be assigned by the kernel and is always based
on the EUI-64 unless an administrator is doing strange things (while other
addresses might be chosen according to the privacy extensions or by an
administrator)
2. When no address is available (because of a race condition or because an
administrator removed it), RA packets should just be ignored; otherwise
an address with a zero interface-id might be assigned