Code for handling unicode/punycode name conversions

Addressing #120
why `bytes.XX` stuff and not a plain `[]byte`