Requests for comment/UserMailer refactor

Rationale
Wikia has made a lot of modifications to the UserMailer. We have added HTML mail support, added mail categories, priorities for delivery and attachments, changed many preferences and defaults, added many new mail types and changed the backend to support an asynchronous mail queue. We feel that mail should generally be more “event” driven in core, and there could be a simple default mailer backend implementation that just receives all the data necessary to build an email. That would allow us to just write our own mail backend instead of having to heavily modify core. Additionally the EmailNotification class is responsible for composing and sending mail and it has a lot of business logic specific to the Foundation workflow and it's not easy to override. We have added hooks and changed basic logic in these classes.

Proposal
The main changes were related to adding new parameters to the send function, and the cascading consequences of that addition.