refactor attachment interface to take in a stream instead of byte[].  Added a CanSendMail method (useful for osx, not sure for other platform).  Ensure all platform now comply the interfaces (they all throw notimplexception for the ComposeEmail with attachments).