Removed API dependency from mailer and api/mail

Fixes #2836.

* Mailer now only handles sending email and initializing settings. Instead of adding new notifications there, it just sets flags on its own object.
* Mailer now checks for the presence of "to". If there is none, it fails. You should really pass a full mail object complete with "to", "subject" and "html", otherwise it's partial content.
* Therefore Mail API doesn't check for the existence of the "to", and doesn't get the email from settings and substitute that
* index.js now has a method that adds the notifications. I figured adding those THERE is probably better than individually in every module. It is, as the comments say, can be made extensible
I'm pretty sure that it's `bower` within `grunt init` that's causing the formatting.

I'm off the mind to commit this bower formatted version as it keeps rising as a problem.  Making the change will at least lead to less of these types of conversations.