IPv6 Support

Uses an automatically generated ULA range for the bridge and guests. 

No IP6Tables support (is it really necessary since IPv6 does not use NAT?) but I've tested the binary and confirmed that routing works just fine between the containers and host - do note that ULAs are not globally routable so IPv6 internet access is not possible as of yet.  

There is some duplicated code for the IPv4-IPv6 decision trees - it seemed unavoidable, especially considering how strict Go seems to be about variable scope within if statements and the like. 

All comments, criticism and ideas welcome; this is my first foray into Go, after all!