Make the regexp validator return the match group
Support better domain validation including IDNA

Refactored hostname validation for both email and URL hostname
components into its own class that is very configurable.
This class supports:
* Checking for IP addresses (configurable)
* Checking TLD portions (configurable)
* Checking some RFC compliances of the various labels
* IDNA punycode encoding for both TLD’s and hostname components

Closes #95.