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 happy to escalate that discussion to the bower people. We shouldn't fix
errors that others make.
On 8 Jun 2014 15:39, "Harry Wolff" <notifications@github.com> wrote:

> In bower.json:
>
> > @@ -1,28 +1,25 @@
> >  {
>
> 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.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/TryGhost/Ghost/pull/2912/files#r13524324>.
>