Bugfix: ICMPv4 TYPE match using incorrect enum.

Fix ICMPv4 TYPE match field to use OFPXMT_OFB_ICMPV4_TYPE instead of
OFPXMT_OFB_ICMPV4_CODE.
Bugfix: Incorrect length when using masked matches.

Fix OXMTLV to have the correct length (double the given length) when
masks are used.
Bugfix: Clear-Actions instruction buffer too long.

Clear-Actions instruction must contain no actions, and must
total 8 bytes in length.
Bugfix: segfault with duplicate match fields.

Duplicate match fields caused a segfault in the destructor due to the
field num being present multiple times in the cur_tlvs_ vector, and the
destructor iterating over those entries and consequently deleting entries
in the oxm_tlvs_ multiple times. For reference, the destructor looks
like this:
Match::~Match() {
    for (std::vector<uint8_t>::iterator it = this->curr_tlvs_.begin();
        it != this->curr_tlvs_.end(); ++it) {
        delete this->oxm_tlvs_[*it];
    }
}