Fix Editor/:postId 404 on draft

closes #2857
- in EditorRoute, get model from the datastore if it's there
- if page is refreshed, get model from `/posts` API with `{status: 'all'}`
Close post settings popover menu after delete post

No issue
-inject popover:service into modal component delete post
 controller so popover close can be triggered as part of
 the delete action
-remove unnecessary 'needs' from the delete post controller
Merge pull request #2894 from jaswilli/close-popover

Close post settings popover menu after delete post
Merge pull request #2892 from appleYaks/draft-404

Fix Editor/:postId 404 on draft
Implement the Tag Editor view

closes #2425

- creates custom view for the tag editor
Clear any existing SIGINT listeners during startup

No issue
-remove any existing listeners on the SIGINT event during
 the ghost bootstrap process.  handles an issue during testing
 where node was warning about too many listeners.
Merge pull request #2903 from jaswilli/bootstrap-listener

Clear any existing SIGINT listeners during startup
Fix HTML preview rendering on the main screen

closes #2904
- The `posts/post` template now takes its HTML from the post model instead of using the editor's markdown component
Merge pull request #2901 from hswolff/tag-editor

Implement the Tag Editor view
Implement a Generic Uploader - #2886
Merge pull request #2905 from appleYaks/preview-markdown

Fix HTML preview rendering on the main screen
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
Uncommenting casper screenshots

- WHOOPS!
Add shadows to PostsListView and the adjacent HTML Preview; Fix preview render

closes #2906
- add a utility function to add classnames to targets, retrofitted from clientold to accommodate `Ember.run.bind`
- create a content-preview view that tracks its scrolling
- add a scroll handler to the existing PostsListView
- The `posts/post` template now takes its HTML from the post model instead of using the editor's markdown component
Fixed publish button not updating with model  change

Closes #2908
- Changes `willPublish` from `oneWay` property to computed property.
Merge pull request #2912 from javorszky/iss2836

Removed API dependency from mailer and api/mail
Merge pull request #2886 from lholmquist/wrap_uploader

Generic Uploader component
Merge pull request #2909 from novaugust/publish-button-reset

Fixed publish button not updating with model  change
Split PostController amongst new Editor/PostSettingsMenu Controllers

closes #2910
- create EditorController, PostSettingsMenuController
- remove `posts.post` controllerName dependency on EditorRoute/NewRoute
- `{{render}}` the PostSettingsMenuView with its own controller
- break up properties/methods from PostsPostController into all three controllers
- fix EditorRoute pagination options to now be comparable to PostsRoute
- add NewController to force NewRoute to refresh editor with blank model. Identical to Editor's
- EditorController and NewController are based on a shared mixin
- NewView created, templateName is 'editor'
Upgrade to Express 4.0

no related issue

- Updates package.json packages, adding express middleware packages
 that have been broken into their own modules

- Updates controllers/frontend.js to use the new Layer object that Express 4.0
 has.  Requires some monkey-patching as the Layer object isn't explicitly
 surfaced, however it should be safe to do.

- Moved the setup of routes into middleware/index.js because they need to
 be added as a middleware function before the 404 and 500 handlers. This is
 no longer possible with the old app.use(app.router) as that has been removed.

- Cleaned up middleware/index.js to make it compatible with Express 4.0.

- Simplified the way themes are activated and enabled when they are activated.
 The new handling is simpler, yet should still cover all the use cases that
 previously existed.

- The entire flow of activating a theme through middleware should be a little
 more centralized, letting it be easier to read and maintain.

- Moved every routes/*.js file to use an individual express.Router() instance.