Forward declare struct device in tuntap.h

This allow to remove some system dependent headers from tuntap.h
and move back IF_NAMESIZE and ETHER_ADDR_LEN to tuntap_private.h

This diff also has the sad side effect of breaking C++ bindings.
Fix IF_DESCRSIZE value, thanks to bxr.su

OpenBSD use the define IFDESCRSIZE while FreeBSD hard codes
it in /sys/net/if.c.