Prevent editor title from being overwritten

Closes #3955
- Change titleScratch from being bound to the title to being
  set when entering the editor so it is not overwritten on a
  model refresh.
- Ensure that the "unsaved content" dialog is shown when there are
  changes to the "scratch" fields after a post-settings-menu change.
- Add tests to prevent regression.
Stop packagePath variable from being undefined
Ability to create custom template files for custom tags. Eg. `tag-design.hbs`
Makes the Ghost application more express middleware friendly.

refs #827

- Moves ./index to use Ghost in a similar manner to how someone uses
Ghost as an npm module.
- Allows Ghost to be cleanly mounted on another express application
on any arbitrary endpoint, all you need to customize is the mount path.
Improve keyboard support

issue #3964
- added :focus selector to improve keyboard support in modern browsers
- added :active selector to improve keyboard support in old IE