idna: copy the idna package from x/text, take 2.

The version is not only API compatible, but is also meant
to mimic the original behavior of doing Punycode only
with only a minimum of additional checks.
Integrated from x/text/internal/export/idna at Git SHA1
fc7fa097411d30e6708badff276c4c164425590c.

All checks making things fundamentally stricter or checks
that require tables are now optional.

Fixes golang/go#18567
Fixes golang/go#18582

Change-Id: I08e6d7f7c276d1d84e02391e22f60c0a44a8ddad
Reviewed-on: https://go-review.googlesource.com/37050
Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 files changed