Bugfixes for match field masks and ICMPv4 TYPE match

ICMPv4 TYPE match was incorrectly using CODE enum value.

Match fields with masks had the wrong length on the wire, consequently causing receiver of flowmod msg to return an OpenFlow error:     Type: OFPET_BAD_MATCH (4)  Code: OFPBMC_BAD_FIELD (6)
Proposed fix here is to double the OXMTLV length when has_mask is true.