Remaining steps for IPv6 support

Most of the work for IPv6 has already been done; this adds support for using ip6tables, makes sure ipv6 support is enabled on the docker0 bridge, and skips the first IP even on IPv6 so we don't have to use a sub-range.
I think this should be refactored, this passing `ipv6` everywhere is not very impressive.  Maybe some struct which can create and delete chains. So, you just create it with `ipv6` or `ipv4` param and use it in code below.