punycode: update to v1.2.3

Notable changes since v1.2.0 (the version currently in Node):

* Improved support for unpaired surrogates.
* Better export logic which makes it work in various environments. (This makes no difference for Node, but it seems like a good idea to keep Node’s copy of Punycode.js in sync with the main repository).

I’ve improved the punycode docs too. See the separate pull request for that: #5620.