netdev-linux: Read packet auxdata to obtain vlan_tid

If VLAN acceleration is used when the kernel receives a packet
then the outer-most VLAN tag will not be present in the packet
when it is received by netdev-linux. Rather, it will be present
in auxdata.

This patch uses recvmsg() instead of recv() to read auxdata for
each packet and if the vlan_tid is set then it is added to the packet.

Adding the vlan_tid to the packet involves copying most of the packet
and may be rather expensive. There is ample scope to avoid this by
passing the vlan_tid back to the caller separately to the packet itself
or providing access headroom in the packet. This would most likely
involve updating the netdev-class API.

Signed-off-by: Simon Horman <horms@verge.net.au>