Removes config.theme and restructures how theme variables are cached

resolves #1789

- removes config/theme.js
- moves caching of theme variables to api/settings.js which is where the
rest of the settings cache occurs.  this removes the requirement of having
to push changes to cache, now it simply occurs alongside when settings
are changed.
- updates relevant tests.
Fix URL replacement in RSS feed mucking with content

closes #3983
- removed naive regex implementation
- added cheerio to project dependencies
- used cheerio to parse RSS content
- use attribute getter/setter to replace href/src attribute urls with the resolved version
Static nanoscroller integration

References #1892

A static integration of https://github.com/jamesflorentino/nanoScrollerJS  

This is WIP with the goal of getting feedback on and deciding how we should integrate this into Ghost.
Fix editor scroll depending on cursor location

Closes #4027
Properly align word-count

no ref
- Re-adds word-count styles
Fix Markdown help modal table positioning

no ref
- Fix top spacing of markdown table
- Fix width of table and left align table head
- Fix grammar, whitespace in getting-started post
Merge pull request #4035 from halfdan/word-count

Properly align word-count
Merge pull request #4034 from novaugust/iss4027

Fix editor scroll depending on cursor location
Fixes the first run messages

no issue

- Whilst testing the mail PR #3915 I noticed the first run messages aren't
  appearing because the dbHash is getting pre-populated, but there doesn't
  appear to be a reason why this is necessary
Merge pull request #4015 from PaulAdamDavis/nano-scrollbars

[WIP] Nanoscroller integration
Minor tweaks to new scrollbar appearance and animations
Merge pull request #4005 from ErisDS/dbhash-first-run

Fixes the first run messages
Merge pull request #4025 from mvalipour/master

URL replacement in RSS feed mucks with content
Merge pull request #3947 from hswolff/goodbye-config-theme

Removes config.theme and restructures how theme variables are cached
Fix lint error in tests
Abstract mobile transition interactions

Closes #4032
- Created "mobile" views: `parent-view`, `content-view` and `index-view`
- `mobile/parent-view` has three callbacks for managing layout, and a mediaQuery listener to keep in sync with the user
- content-view and index-view use their parent-views callbacks to bring themselves into and out of the viewport as appropriate
- fixed media queries for post content list from 800px to 900px
- Created `mobile-index-route` to intelligently transition to a new route on desktops (used by both PostsIndexRoute and SettingsIndexRoute)
- Extract mobile interactions from settings views to new mobile utility views
- `js-` prefixed settings view transitions
- removed unused openEditor action from PostsRoute
- removed unused mobile util "responsiveAction"
Merge pull request #4033 from halfdan/getting-typos

Fix Markdown help modal table positioning
Merge pull request #4044 from novaugust/issue4032

Abstract mobile transition interactions
Mobile view menu for content screen

closes #4031
- Adds css to show back button, edit button in header nav on mobile