Address a number of IPv6 flow label bugs scattered across different parts of ipfw:
- kernel module: IPV6_FLOWLABEL_MASK is not being applied before comparison in flow6id_match() so flow-id opcode never matches a flow label alone (one need to take protocol version and traffic class into account)
- kernel module: off-by-one bug leading to out-of-bounds read
- sbin/ipfw: flow-id opcode allows just ip6 as a proto while ipv6-icmp, tcp, udp should be fine too.