Preserve original IDN exception when wrapping.

Improves the behavior of `IDNDomainHelpers`. Any code that matches
against the exception type, which was formerly a case object and is
now a case class, should continue to work as before.

Closes #98