Ignore SMTPServerDisconnected from smtp.quit()

This exception is raised by smtp.quit() for some smtp servers (for example
laposte.net).
If dnslookup return NXDOMAIN, return False

A NXDOMAIN error from dnslookup means the domain does not exists. In such a
cas, we consider the email address as being invalid.
,
Add a cache for check_mx.

Once a mx has been checked, any further check on the same mx will immediately
return without actually connecting to the smtp server.