Bug 1090990: Fix unicode error for emails with non-ascii domains.

This fixes the unicode decode error, but validation will still fail for emails
with non-assci user components (before @). Open question in the bug on what we should
consider valid here based on what ET considers valid.
Why raise a KeyError if the email wasn't given?

In fact, it'd be even better if this just took the email as the argument rather than the entire data object.