Better edge case handling

Properly parse emails and uri for domain names by relying on `addressable` and `email_veracity`. Gman can now optionally verify an email's MX record in the event that gman is not passed an already-verified email address.

Also LOTS more testing.

Gman's new motto: *"Because Regex is the fastest way to get the wrong answer"*

/cc https://github.com/weppos/publicsuffix-ruby/issues/39, @leereilly, @johndbritton for feedback and in case it makes any sense to incorporate any of this logic into SWOT.