Code for handling unicode/punycode name conversions v2

Opening new PR for clean commenting
Please add some package docs (you can copy them from my idn branch)