AppProxy with permissions checks and app context

Ref #2059

- Refactor appProxy into class that is instantiated per App
- Check for permissions before doing proxied filter/helper calls
- Add all currently existing api methods, let api check for permissions
- Basic unit tests for filter and helper register/deregister
- Adjusted proxy api method existence unit tests
Additional objects

closes #2620
- moved aspect -> filters
- updated tests
- fixed inconsistency in pagination object
Support for urlSSL config option and forceAdminSSL 403 response

closes #1838
- adding `forceAdminSSL: {redirect: true/false}` option to allow 403 over non-SSL rather than redirect
- adding `urlSSL` option to specify SSL variant of `url`
- using `urlSSL` when redirecting to SSL (forceAdminSSL), if specified
- dynamically patching `.url` property for view engine templates to use SSL variant over HTTPS connections (pass `.secure` property as view engine data)
- using `urlSSL` in a "reset password" email, if specified
- adding unit tests to test `forceAdminSSL` and `urlSSL` options
- created a unit test utility function to dynamically fork a new instance of Ghost during the test, with different configuration options
Merge pull request #2631 from jgable/appProxyContext

AppProxy with permissions checks and app context
Merge pull request #2238 from gimelfarb/fix-1838-admin-ssl

Support for urlSSL config option and forceAdminSSL 403 response
Merge pull request #2652 from sebgie/issue#2620

Additional objects
Converting aspect -> filters for tag pages

fixes the build

- PR #2238 added an extra reference to aspect which wasn't fixed by #2652, this resolves that
Removed 2 sec pause

refs #2660
- removed timeout from routes tests (since Ghost is used as module it
is restarted before logging in)
- Casper.js does only one login and the existing waits are executed
after testing login limiters
- gain: 8 sec :-/
Merge pull request #2662 from sebgie/issue#2660

Removed 2 sec pause
Redirect from admin editor to frontend post view

closes #2628
- added /view/ route to the editor. if /view/ is appended to
  the url of a post being edited a redirect to the frontend
  will occur
- updated controller to check for /view/ and built the
  correct url for the post
- added test for the new route
Settings API Primary Document refactor

Closes #2606

- Refactor settings api responses to { settings: [ ] } format
- Update all code using api.settings to handle new response format
- Update test stubs to return new format
- Update client site settings model to parse new format into one object of key/value pairs
- Refactor to include all setting values
- Remove unused settingsCollection method
- Update settingsCache to store all attributes
- Update settingsResult to send all attributes
- Remove unnecessary when() wraps
- Reject if editing a setting that doesn't exist
- Reject earlier if setting key is empty
- Update tests with new error messages
- Use setting.add instead of edit that was incorrectly adding
- Update importer to properly import activePlugins and installedPlugins
- Update expected setting result fields
- Fix a weird situation where hasOwnProperty didn't exist :shrug:
Improving uploader "too big" error to help with debug

#994
Merge pull request #2676 from wub/master

Improving uploader "too big" error to help with debug
Add functional test for markdown help modal in editor

closes #2273
Merge pull request #2678 from jaswilli/issue-2273

Add functional test for markdown help modal in editor
Merge pull request #2670 from jaswilli/issue-2628

Redirect from admin editor to frontend post view
Merge pull request #2661 from jgable/settingsPrimaryDocument

Settings API Primary Document refactor
Move user API to primary document format

closes #2593

- added new format to user API methods
- changed all places where the user api was used
- updated tests and added more coverage
- little bit of cleanup in utils/api
Merge pull request #2682 from ErisDS/issue-2593

Move user API to primary document format
Adding docker for trying out docs generation

issue #2622

- yes 'docks' is a silly directory name but it's easier to remember which is which than docs and docs2