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
People should only `git add` the files that they've changed. This is mostly
a user error and I don't think we should check in a reformatted bower.json
just to deal with it.
On 8 Jun 2014 15:15, "Harry Wolff" <notifications@github.com> wrote:

> In bower.json:
>
> > @@ -1,28 +1,25 @@
> >  {
>
> 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.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/TryGhost/Ghost/pull/2912/files#r13524241>.
>