ensure if_index gets set and setup_iface is called

If radvd 2.1 is started with a configured interface not connected (link down), using...

IgnoreIfMissing on;

when the link goes up, that interface does not work until radvd is restarted.

The primary change is in radvd.c, function setup_iface() swap the occurrence of calling
check_device() and update_device_index(), calling update_device_index() first always
creates a 'slot' that can be indexed later when the link goes up.

There's also a change in send.c which will ensure setup_iface is allways called on an
interface that is not ready.

This commit also moves setup_iface to interface.c from radvd.c.