Use poll() for multi-connection support.

It was boring to write, but it exercises blocking and timeouts
quite nicely.  Too bad it shook out only one bug :/
give vif a hardcoded MAC addr to keep dhcp happier
implement errno support

(would conflict with HAVE_LIBC, solve that later)