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
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
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"
Updates image upload directories to be number based.

resolves #2285

- Moves to using moment.format('MM') to use the date formatting of a month
Add delete post shortcut to content screen

Proposal :: No issue
- cmd/ctrl+backspace deletes a post on the content screen
PSM: Cover Images

closes #3885
Fix user settings page for Firefox

References #4050

- Restructures the CSS to work in Firefox - No visual changes, only fixes
Updating dev dependencies

refs #3795

- updates all dev dependencies to their latest version number
- jshint now complains about the Promise global, removed it from predef in
  lieu of a better solution
- changes in should require minor updates to the tests
- tests are passing and all major grunt commands appear to work: clean,
  init, prod, validate and release
Support --reporter and --reporter-output when running tests.

When running any Grunt task that runs tests with Mocha, the two
following command line options are now supported:
- --reporter: allows to specify a reporter, default is 'spec'.
- --reporter-output: allows to specify a file where Mocha's output will
  be stored.

These two command line options make it easier to retrieve and parse test
results when tests are run on a continuous integration platform like
Jenkins.

Fixes #4038.
Add jscs task to grunt file and clean up files to adhere to jscs rules.

resolves #1920

- updates all files to conform to style settings.
Updating express to 4.9.2 & related packages

ref #3795

- express updated to 4.9.2
- express 4.9.0 introduced res.sendStatus() to replace res.status().end()
- we no longer need express-session, connect or cookie-parser
- body-parser, busboy, compression, express-hbs, morgan, all bumped to
  latest versions as well - there doesn't seem to be any breaking changes
Let Ghost serve favicon instead of using dependency

no ref
- Remove static-favicon dependency
- Refactor robots.txt middleware to also serve favicon
- Add ETag
Cleanup reserved words in generateSlug

closes #1889
- Adds a new filter for slugs
- Move slugs to config.slugs
Ignore unknown setting keys on import

fixes #4059
- Ignore NotFound setting keys
Properly handle no posts

fixes #4058
- Set noPosts in setupController
Mobile view menu for content screen

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

Closes #3937
- Add ghost tab components
- Remove extra container div from Application view
- Move right-outlet viewing logic to application level
- Prepare PSM.hbs for tabbing
Redirect user if signup invitation isn't valid

Closes #3565
- Added server API isInvitation (analog to isSetup), checking if an
invitation exists for a given email address.
- If the invitation is no longer valid (or didn’t exist in the first
place), the user is redirected and an error notification is shown.