More comprehensive validation of email addresses.

Here's an attempt to address #402.  It directly copies the address-validation logic used client-side in Firefox.  This has the advantage of (theoretically) accepting precisely the addresses that Firefox says are valid, and the disadvantage of being hugely verbose.  We could probably validate the the username and domain portions with a regexp instead, if that seems preferable.

I'm not thrilled about the rather hacky way this integrates with Joi, but I couldn't find a more suitable API for introducing this sort of custom validation function.

@dannycoates thoughts?