Ensure cookies are only ever set for admin

fixes #1901

- Adds a trailing slash to the cookie path
- Resolves random log-outs
- Adds a test which proves the case
Merge pull request #1910 from ErisDS/issue-1901

Ensure cookies are only ever set for admin
Minor fixes to asset helper and tests

no issue

- asset helper ignores it if theme devs specify the asset dir
- asset helper strips leading slashes
- static asset tests were wrong
Error message updates

no issue

- couple of tweaks to the messaging of non-fatal errors that can be output when running Ghost
Updating to latest Casper
Bump version for pre-release 3
2013 => 2014
Merge pull request #1917 from JohnONolan/copyright

2013 => 2014
Updating to latest Casper
Publish date and time display fix

no issue

- add @ symbol to ensure date and time are clear
Merge pull request #1919 from ErisDS/date-display

Publish date and time display fix
Version bump for 0.4 release
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.
Update Contributing Docs to include Developer tips
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
Merge pull request #1944 from b1nd/docs

Update Contributing Docs to include Developer tips
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