Make Netifaces an optional module dependency.

When not available, iproute is used (Unix-specific).
Fix legacy DHCP protocol handling.

Some bootp ROMs don't send an explicit dhcp DISCOVER: in case we allow
"simple DHCP", handle those packets as if they were dhcp DISCOVER
packets.
Fix urlparse issue.

In some (most?) python installations, urlparse doesn't allow to access
keys by name, only by position. Also fix boolean conversion.
Allow to configure client IP from a fixed MAC/IP mapping.

In addition to dynamic IP allocation from a pool of addresses, provide
a way to configure clients with static IPs configured in ini file: new
section "static_dhcp" allows to configure static mapping MAC ->
IP. All clients in these sections will be allowed by default (ACLs)
unless explicitely disabled in "mac" config section.

If pool_count is set to 0, only static IP allocation is supported, but
pool_start must still be defined to be a valid IP address in the local
network (eg. IP of the DHCP server).
Allow to advertise serveral DNS servers.

Multiple DNS servers can be specified, separated with ';'. Most
clients will consider only the 1st one listed. The special 'auto'
keyword is updated to advertise all nameservers used by the DHCP
server.
remove unneeded space