Various fixes for DHCP.

- include sys/ioctl.h, so we know if the system supports SIOCSARP
- add listen_socket_t to dhcp_socket_t, so that we can use all of
  it's fields
- for systems supporting SIOCSARP, check if "interface" is defined,
  and if not, refuse to do ARP, as it requires an interface