Some IPv6 refinements

Option changes

- added getter for ipv6-v6only

- added setter+getter for
 ipv6-{multi,uni}cast-hops
 ipv6-multicast-loop

- added setters to join/leave IPv6 multicast groups (ipv6-{add,drop}-membership)

Other changes

- converted the code to use sockaddr_storage / getaddrinfo /  getnameinfo wherever possible => got rid of couple of 'case' blocks, and as a result (for example) linklocal address scoping 'just works'

- added testsuite to test all of this stuff under test/ (ipv6mcast*.lua)