add/skip packet information on tap send/recv
Unless the IFF_NO_PI flag is set when the tap is created,
the kernel assumes that each packet sent to or received from
a tap fd starts with 4 bytes of packet information.
We previously did not care about this 4 extra bytes, but external
controllers are confused by them (the internal ovs-switch logic was
confused as well, but it defaulted to hub behaviour and the bug
was thus hidden).
Unfortunately, fd_tuntap does not allow us to set IFF_NO_IP, so
we have to manually skip/add the 4 bytes on recv/send.