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
It's an error in `bower` which arises when we tell people to `grunt init`.  Bower shouldn't be manipulating its .json file.

If you're happy to keep on telling new devs that this is a known thing and you shouldn't commit that formatted json then keep right on.

I myself would just commit the bower munged json file and worry about other things.