icmp6: add functions to generate ICMPv6 filters
icmp6: enforce ICMPv6 filters

Allow setting ICMPv6 filters on a socket.

Filters appear to be working but broken: using icmp6_filter_setpassall/0
blocks all the packets and setting icmp6_filter_setblockall/0 allows
all packets.
icmp6: reverse RFC3542 on linux

Linux reverses the filter macros in RFC3542. OpenBSD, FreeBSD and Solaris
follow the RFC.

Add option to retrieve the filter setting on the socket.
ping: simplify cleanup
ipv4: consistently return 'unsupported' for filter
icmp6: document the filter functions
icmp6: enable filtering for ping/1,2,3 by default