Code for handling unicode/punycode name conversions

Addressing #120
The `tokens := bytes.Split([]byte(s), []byte{'.'})` is this to get the labels of the domain name?