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
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 #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
Implements is-helper

closes #2249
- Added context to res.locals
- Added context aware is helper
- Added unit tests