Save meta title and meta desc on post save

Closes #4369
- Renamed `editor-route-base` -> `editor-base-route` to bring it in alignment with the view and controller mixins
- Consolidated editor route code into editor-base-route
- Removed `serialize` from EditorEditRoute, as it reimplemented the ember default
Use nested output style for Sass

References #4389

As a result of https://github.com/TryGhost/Ghost/pull/4389#issuecomment-61637323 the best way to keep everything working nicely is to use the `nested` outputStyle for now.
Create Tags Management Stubs for Ember

closes #4260

- Adds "tags" route inside of the settings routes.
- Adds this route to router.js
- Links the route from the settings.hbs template
- Adds demo tags html in tag.hbs template
- Adds flag for tagsUI
Add pg as an optional dependency.

Closes #1333
- Change PostgreSQL build on Travis from an allowed failure to
  failing the tests just like sqlite3 and MySQL.
Merge pull request #4385 from novaugust/save-meta

Save meta title and meta desc on post save
Merge pull request #4273 from cobbspur/tags

Create Tags Management Stubs for Ember
Merge pull request #4393 from PaulAdamDavis/sass-nested

Use nested output style for Sass
Update to Ember 1.8.1.

http://emberjs.com/blog/2014/11/04/ember-1-8-1-released.html
Merge pull request #4399 from rwjblue/update-to-1-8-1

Update to Ember 1.8.1.
Correct logError to log err which has undefined `message`

closes #4384
 - if err is `object` && `err.message` isNOT `string`, let err = `An unknown error occurred.`
Merge pull request #4384 from meowtec/fix-error-log

fix bug in which `logError` could not resolve an err without `message`
Remove hash after the url when clicking Meta Data

Removes that hash appended to the URL when clicking Meta Data in post settings.

Closes #4386

When clicking 'Meta Data' the click event appends a # to the URL. I replaced the a with a button element so that won't happen anymore. The button has a type attribute because it will try and submit the form without it. Added text-align: left to the navlist button because the button centers it's content by default.
Merge pull request #4405 from jillesme/iss-4386

Removes hash after the url when clicking Meta Data
Adds SIGTERM handling

closes #4403
- adds SIGTERM handler to match SIGINT handler
Merge pull request #4404 from Haegin/add-sigterm-handler

Adds SIGTERM handling
Merge pull request #4395 from jaswilli/pg

Add pg as an optional dependency.
Allow Ghost to be used as middleware within another Express app.

closes #827 #3849
- Ghost can now be mounted as middleware in another Express app by
  `app.use('/blog', require('ghost/core/server/middleware')(ghostConfigHash));`
- Update messaging to account for server versus middleware.
- Allow access to Ghost's initialization-complete promise through the
  `.ghostPromise` property added to the middleware instance returned.
  (Neither the framing app used for functional tests nor an example
  Express app showing Ghost used as middleware needs this, but examples
  of its use can be found in `test/unit/middleware_spec.js`.)
- When used as middleware, `ghostConfigHash` should not contain `url` or a
  `server` block.
- Base URL and path for Ghost determined dynamically from the .mountpath and
  request information provided by Express.
- Ghost configuration can contain `generate404s` and `generate500s` keys.  When
  their values are `false`, Ghost will no longer serve the associated pages.
- Created new grunt task `test-middleware-functional` that runs the
  `test-functional` tests against a test server including Ghost as middleware
  (plus a number of other tasks/assets needed to support).  Did _not_ add this
  to the set of tasks run by `grunt validate` for fear of impact on build times.

Design issues:
- Because we return an Express middleware instance immediately, but finish our
  initialization asynchronously, it's possible that on startup the parent
  application could ask us to handle requests before we're ready, with
  indeterminate results.  A parent app author could protect against this by
  watching our initialization promise.  Or we could ensure we're ready before
  requests are processed by inserting another layer of Express middleware that
  passed requests on for processing in `.then` calls on the Ghost initialization
  promise.  I decided that the added complexity of this protection wasn't justified
  by the startup-time risk, but it could be added.
- I'm not necessarily happy with making Ghost's initialization promise available
  as a property of the Express middleware instance we return, but it seemed like
  the least of evils, and I'm not aware of any other Express component that has
  this need reference for guidance.  Any alternative suggestion would be welcome.

Refactors:
- The existing `middleware_spec.js`, which tested Ghost's internal middleware
  components and configuration was moved to `server_middleware_spec.js` to allow
  the unit tests for `server/middleware.js` to use that name.
- Validation of the content of Ghost's configuration was moved out of the
  file-loading method and is now invoked by `config.init` so that checks apply
  to both files and passed-in configuration hashes.
- The entry `asMiddleware:true` is automatically added to the config when
  Ghost is initialized through the middleware entry point, so that internal code
  that only operates in this case can test for an explicit configuration.
- `checkNodeVersion()` was moved out of `ghost-server.js` and into
  `utils/startup-check.js` so that it could be shared between server and
  middleware configurations of Ghost.

References:
- The individual commits squashed into this PR are available on the branch
  git://github.com/gleneivey/Ghost.git#separate_middleware_entry_point
- A trivial example Express application that incorporates Ghost as a
  middleware component is in https://github.com/gleneivey/example-express-with-ghost-middleware
- A wiki page that may be copied into the main Ghost wiki, describing
  how to configure/use Ghost as middleware is available at
  https://github.com/gleneivey/Ghost/wiki/Using-Ghost-as-Express-Middleware