MAC and VLAN improvements.

MAC is sent optionally now, only if present in the packets.
VLAN is optional in the same way, and supports double tagging.