Add footnotes extension to showdown

refs 1318
- based on Markdown Extra https://michelf.ca/projects/php-markdown/extra/
- allows [^n] for automatic numbering based on sequence
Cleans up HTML data attributes on body in default.hbs

closes #4485

- removes data attributes used on body in default.hbs
- introduces new way to generate configuration through meta tags
- config initializer consumes configurations from the meta tags using parser
- moves blog_title helper/value to be a property in a configuration api
Prevent silent failures and recover after error.

Refs #4543
- Alway return model out of save handler so sub-classes which
  call this._super() on save have a model on success and failure.
- Always return resolved promise out of post slug generator.
- Test the errors object in the error notification helper to avoid
  throwing an unhandled exception and silently failing.
- Consider a post model "dirty" if it is in an error state.
Do not display "auth failed" modal on clean posts.

Refs #4543
- Check EditorController.isDirty before displaying the
  authorization failed modal dialog.  This prevents the modal
  appearing immediately upon entering the editor in cases where
  auth has failed prior to opening the editor.
Allow notifications to sit over the nav bar

Closes #4379

- Adjusts the `.viewport` `z-index` propetty to allow notificatons to sit over the nav bar

Looks like a weird fix, but inheritence of z-index was the issue here.
Merge pull request #4547 from jaswilli/post-saving

Prevent silent failures and recover after error.
Merge pull request #4531 from Gargol/issue-4485

Cleans up HTML data attributes on body in default.hbs
Merge pull request #4551 from jaswilli/editor-401-modal

Do not display "auth failed" modal on clean posts.
Introduce sitemap XSL template

Based on Yoast's All in One SEO plugin for WordPress implementation
Merge pull request #4559 from JohnONolan/sitemap-xsl

Introduce sitemap XSL template
URL safe base64 encoding

closes #3872
- updated base64 escaping to respect + and \
- updated base64 escaping to remove = during transport
- updated tests
Cleanup layout Sass

Continues on from #4441

- Reformats the layout Sass files (comments, white space)
- DRY up small chunks of CSS to make it more comprehensible
Merge pull request #4554 from sebgie/issue#3872

URL safe base64 encoding
Move ugly debug to Settings  Labs

 closes #4534

- Adds new Labs route
- Wires route in settings page
- Move and rename debug templates and logic to labs
- Redirect /debug to settings/labs
Merge pull request #4560 from cobbspur/labs

Move ugly debug to Settings  Labs
Change anchors without hrefs to buttons.
gh-trim-focus-input autofocus fix for iOS Safari

Closes #4446
- Mobile Safari doesn’t support the HTML5 `autofocus` attribute, but
also doesn’t play nice with jQuery’s `focus()` and `select()` methods.
- Mobile Safari wouldn’t automatically select the input field anyway,
so this PR simply removes the “jumping input fields” error without
changing any actual behaviour.
- Disallowing the programmatic selection of input fields (with select,
focus or similar methods) is apparently considered a feature rather
than a bug (ref http://bugs.jquery.com/ticket/12789)
- `autofocus` attribute is now only set on non-iOS devices
API - no more m-2-m relation ids by default

closes #4498

- remove toJSON code which returns only IDs from objects
- don't auto-include tags & fields in post responses
- don't auto-include roles in user responses
- fix #allthethings that made assumptions about the auto-includes, or otherwise were only working because of the auto-include
Merge pull request #4530 from ErisDS/issue-4498

API - no more m-2-m relation ids by default
Merge pull request #4550 from felixrieseberg/iss4446

gh-trim-focus-input autofocus fix for iOS Safari