datapaths: Fix a number of rewrite actions

A number of rewrite actions were very broken, accessing fields
which don't exist, ignoring the possibility of VLAN tags, and
accessing the wrong packet header.  This commit hopefully fixes
them.  At the minimum, it now passes more tests in OFTest.

Co-authored-by: MurphyMc