Add a new event EVENT_VALIDATE_EMAIL_ADDRESS that allows a plugin to define additional checks for email

This event files within email_is_valid function at the following point:

AFTER:
a) we check whether validate email is on
b) after we check whether allow_blank_email config is on
c) after we call FILTER_SANITIZE_EMAIL from php to strip invalid characters
d) after we check the email regex against the html 5 standard

but before we check against limit_email_domains/blocked_email_domains/do MX record checking

Therefore email addresses hitting this validation hook will already have had some basic sanity checking done against them.

The result of the hook is one of 3 things:
true - i.e. allow and no further checks
false - i.e. reject
null ==> perform our other internal validation checks.

I'm assuming this would mainly be used to implement REJECTION hooks.

If it was to be used to return true, care would have to be taken to consider the impact on the remaining checks i.e. limit/allow email domains and MX record checking


Fixes:

0017284: Allow Plugins to implement their own email Validation checks