confirmed: ipv6mapped addrs do not inherit from ipv4 or ipv6 settings

If your socket is native ipv4 or native ipv6, you can set the tos
value. If it is ipv6mapped to ipv4, you can't. The standards SHOULD
have included direct mappings back and forth to the TOS, TTL, and
PROTO fields, but they don't. Grr.

Assuming we go into a forking server mode establishing a new udp
connection, we should be able to create the new socket as a non-mapped
socket of the right protocol and handle setting the tos bits that way.

This commit makes ipv6 work locally and breaks ipv4. We still have
some trouble with transiting the internet...

Setting TCLASS

d@puck:~/git/isochronous$ ./udpburst -c 16 -f -C ::1
controllen: 20
64 bytes -- received 16 of 16 -- 16 consecutive 0 ooo 0 dups 4 ect

 1 2 3 4 5 6 7 8 9 a b c d e f

IP_TOS bits lost on an ipv4 connection:

d@puck:~/git/isochronous$ ./udpburst -f -C -c 16 snapon.lab.bufferbloat.net
IPV6_RECVTCLASS: Protocol not available
64 bytes -- received 16 of 16 -- 1 consecutive 3 ooo 0 dups 0 ect

 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

and if you try setting IP_TOS from an IPv6mapped socket you get:

d@snapon:~/git/isochronous$ ./udpburst -S
controllen: 20
sendto: Invalid argument