Allow schema changes

closes #2354
refs #1641

- added addUnique()
- added dropUnique()
- added addColumn() -> needed for #2330
- dropColumn() is missing due to lack of knex support
- further cleanup of the migrations module
Remove redundant function declaration
Fixes static pages when permalinks are active.

fixes #2938
- Fix `page === 1` occurences
- Fix ember logic
Merge pull request #2944 from jaswilli/error-cleanup

Remove redundant function declaration
Merge pull request #2931 from sebgie/issue#2354

Allow schema changes
Refactored PostSettingsMenuController

Closes #2845.
Ref #1351.
- Refactored `PostSettingsMenuController` to appropriately set and display
  slug and publish date and their placeholders.
- Removed api spam on title change by putting `slugPlaceholder` generation
  inside of an `Ember.run.debounce` call.
- Renamed `gh-blur-text-field` to `gh-blur-input`
- Created `SlugGenerator` class to abstract slug generation.
- Added `timestampVerification` function to `utils/date-formatting`
- `utils/date-formatting` now uses `strict` parsing of dates
- Added more acceptable date formats to accommodate strict parsing
- Moved `isDraft` and `isPublished` computed properties from
  `EditorController` to `PostModel`
Change `posts`, `post` and `signout` routes to be `AuthenticatedRoute`s

No issue
The following is a list of routes which are not authenticated
- placeholder routes: `editor` and `content`
- `application`
- password routes: `forgotten`, `reset`, `signin`, `signup`
Transition user to original destination after signin

Closes #2943
- `AuthenticatedRoute` now stores the user's original destination on the
  `ApplicationController`.
- The `SignIn` route's `login` action checks if the `loginTransition` property is set on the
  `ApplicationController`, and if so, retries that transition after a
  successful login.
Merge pull request #2900 from novaugust/ember-settings-menu-cherry-picked

Rebuild Post Settings Menu
Reach Editor parity with Ember

closes #2426, closes #2781, closes #2913
- Concatenate vendor files on change of js in core/shared/
- Add all the markerManager stuff to its own mixin
- make markers a shared object for all that mix it in. makes it easier to use helper functions in different modules
- add getMarkdown method, returns object with two keys holding the markdown: one with markers, the other without
- Clear markers when codemirror is destroyed
- make Editor subcomponents communicate through the Editor Controller
- Set Codemirror and html preview shared scrolling
- Set CodeMirror, html preview css scroll class with util
- Create 'scratch' property in Editor controller; prevents a model save wiping image markers due to markdown bindings
- Add editor and html preview actions to handle img upload start/finish
- disable codemirror when an image is being uploaded, enables on success or failure
- Fix editor wordcount when there are 0 words
- Add modal dialog when transitioning out of the editor with an unsaved post
- Add window.onbeforeunload handling with `.unloadDirtyMessage()` on editor controller
- and various other things
Label 'for' attribute value literal have no delimiter.

Closes #2954
Merge pull request #2953 from novaugust/authenticate-ember-routes

Change `posts`, `post`, and `signout` routes to be `AuthenticatedRoute`s
Merge pull request #2955 from jasonsturges/attribute-delimiter

Label 'for' attribute value literal have no delimiter.
Merge pull request #2952 from novaugust/ember-signin-transition

Transition user to original destination on login
Merge pull request #2946 from halfdan/fix-page

Fixes static pages when permalinks are active.
Merge pull request #2895 from appleYaks/editor-parity

Reach Editor parity with Ember
Create boundOneWay util function

Closes #2958
- Created `boundOneWay` util to extract common pattern of having a oneWay property that doesn't break its binding after being set
- Changed `EditorControllerMixin.willPublish`,  `PostSettingsMenuController.publishedAtValue` and `.slugValue` to use the new `boundOneWay` util
Merge pull request #2960 from novaugust/boundOneWay

Create boundOneWay util function
Allow extra options to be passed to casper tests
Rejigging grunt tasks

- bower only happens in init, not when running the tests as init should
always be run first