Fixed issue with adding multiple new tags to a post

Fixes #1907

Refactored `updateTags` to correct a loop issue where the `insert`
method was mistakingly being passed rather than `update`, triggering a
duplicate PK SQL error.
Including theme partials in a way that supports symbolically linked directories

closes #1937
 - using fs.stat() instead of hasOwnProperty() to test for directory existence
Fix display update notification

closes #1932

- added showUpdateNotification with version check
- added temp workaround for boolean values in database
- changed default value from false to null
- updated tests
Enable Escape key to close tag suggestion popup

closes #1893
- Checking the contents of search term after evaluating the keycode caused the suggestion box to be hidden and immediately reshown
- Moving the if/else to the top of the function enables us to fix the issue without complicating the suggestion update logic
Prevent stacking of password mismatch notification on /reset/

closes #1902
- Missing call to clearEverything caused the new notifications to pile up on multiple failed submissions
Adding case-insensitive User.getByEmail method

fixes #1498

- emails are no longer converted to lowercase, local mailbox can validly
  be mixed case
- getByEmail uses JS to compare emails to ensure we can support unicode
- tests that users can be retrieved by their email address with case
  insensitivity
Fix posts.html and posts.markdown field type

closes #1947
- added fieldtype: medium for posts.html
- changed fieldtype: medium for posts.markdown
- added method to fix databases created with wrong field type
- added tests for database version 002
Merge pull request #1957 from sebgie/db-fix

Fix posts.html and posts.markdown field type
Merge pull request #1954 from ErisDS/issue-1498

Adding case-insensitive User.getByEmail method
Show message and don't start if javascript files have not been built

fixes #1782
- added builtFilesExist function to check for files during startup.
  If built files do not exist Ghost startup is stopped and a link
  to the documentation is displayed.
- exported a scriptFiles object from server/helpers.
- added a builtScriptPath to the paths module.
- removed "js-msg" about missing javascript from the UI.
Fix for session handling

closes #1978
- wait for async calls before callback()
Merge pull request #1956 from jaswilli/issue-1782

Show message and don't start if javascript files have not been built
Merge pull request #1927 from schneidmaster/fix-1907

Fixed issue with adding multiple new tags to a post
Merge pull request #1951 from Damiya/1902-fix

Prevent stacking of password mismatch notification on /reset/
Merge pull request #1950 from Damiya/1893-fix

Enable Escape key to close tag suggestion popup
Merge pull request #1948 from sebgie/issue#1932-1

Fix display update notification
Adding guard to meta_title

fixes #1992
Merge pull request #1949 from jolros/symlinked-themes-bugfix

Including theme partials in a way that supports symbolically linked directories
Merge pull request #2004 from ErisDS/issue-1992

Adding guard to meta_title
Upgrade express-hbs, and switch to using registerPartial

fixes #1964, fixes #1975

 - Issues with partial handling which caused #1964  have been part fixed by handlebars, part worked around by express-hbs, we must use `registerPartials` to ensure partials are handled correctly.
 - Issue with error handling which caused #1975 has also been fixed in express-hbs, which now catches the error from handlebars and passes it to express so that we can handle the error with an error page.