Tag Management: Delete Flow

Closes #4633
- The ‘delete’ button is now a smaller plain text link, opening a
confirmation modal analog to the delete user/post flow
- Adding a post count is dependent on #4654, but the modal is already a
neat step up from the immediate, warning-less deletion.
Merge pull request #4656 from felixrieseberg/iss4633

Tag Management: Delete Flow
Navigation UI Mockup

Refs #4537

Static mockup of the navigation UI

- Includes hacky JS to simulate interactions (but not dragging, which is #4540 and no modal when deleting)
- Delete & add icons have invisible padding to increase hit area
- Drag handle has the `move` cursor
- Switches into a single column at 600px and below
Merge pull request #4665 from PaulAdamDavis/navigation-ui

Navigation UI Mockup
refactor 'config' object to allow it to be initialized from a hash, including extracting content validations from file-reader
separate config info validations based on stand-alone versus middleware server
introduce new middleware module; drive out its initialization of the config object
w'ing-ip on refactor of Ghost boot to work for an embeddable express instance
supress doesn't-autostart-as-NPM-module warning when no server config ('grunt validate' broken due to earlier changes)
Clean up hanging promises left by middleware_spec
tidy comments and white-space on changes made to date
set paths.subdir from the blogApp.mountpath when configured as Express middleware
also set config.(_config.)url in the setSubdirPath middleware
implement 'generate404s' and 'generate500s' configuration flags
also set config.theme.url from blogApp.mountpath when used as middleware
when used as middleware, put an actual URL, not just an absolute path, into the config...url fields
use explicit 'asMiddleware' entry in config to identify when Ghost is configured as middleware in a larger app
change middleware API, replace .getGhostPromise() with .ghostPromise
move node version check from GhostServer#logStartMessages (wha?) to startup-checks.js, invoke startup-checks when instantiated as middleware
When used as middleware, output a log message on startup *after* the initialization promise resolves