Detect html and plain emails and provide the corresponding `html` and/or `text` values in the Mailgun API request

Also: major refactoring of the deliverer code