VlanMux: optimize tag pop/push
VlanMux: optimize tag pop/push

Leverage packet.shift{left,right} to minimize the amount of data that
needs to be copied when inserting/removing a tag from an Ethernet
header.  In the ideal case, only the src/dst MAC addresses need to
actually be moved.

alexandergall/snabbswitch,snabbco/snabb,eugeneia/snabb,snabbco/snabb,Igalia/snabbswitch,eugeneia/snabb,Igalia/snabb,Igalia/snabb,eugeneia/snabb,snabbco/snabb,alexandergall/snabbswitch,SnabbCo/snabbswitch,eugeneia/snabb,snabbco/snabb,alexandergall/snabbswitch,snabbco/snabb,snabbco/snabb,SnabbCo/snabbswitch,alexandergall/snabbswitch,Igalia/snabbswitch,alexandergall/snabbswitch,Igalia/snabb,Igalia/snabb,Igalia/snabbswitch,eugeneia/snabb,eugeneia/snabb,Igalia/snabbswitch,alexandergall/snabbswitch,Igalia/snabbswitch,snabbco/snabb,Igalia/snabb,Igalia/snabb,Igalia/snabb,SnabbCo/snabbswitch,snabbco/snabb,alexandergall/snabbswitch,eugeneia/snabb,SnabbCo/snabbswitch,Igalia/snabb,eugeneia/snabb,alexandergall/snabbswitch