Moving nanoscroller to be managed by bower
Merge pull request #4237 from ErisDS/nanoscroller

Moving nanoscroller to be managed by bower
Clean up hardcoded ghost paths

closes #4144
- made contributors template use the `gh-path` helper
- Removing blogRoot from application.js
- made error image use the `gh-path` helper
Merge pull request #4163 from mattiascibien/issue-4144

Clean up hardcoded ghost paths
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