Punycode code improvements

* `Punycode::encodePart` is renamed `Punycode::toAscii` and is now public
* `Punycode::decodePart` is renamed `Punycode::toUnicode` and is now public
* the  `mb_internal_encoding` is directly set into `Punycode::toAscii`  and `Punycode::toUnicode`  so we don't need to set them in the script.
* all public methods are made static without affecting Unit Testing
* internal code improvement:
    * `Punycode::$decodeTable` is removed
    * `Punycode::$encodeTable` is renamed `Pynycode::$transcodeTable` 
    * `Punycode::adapt` rewrote