Fix tag updating on model save in editor controller

closes #3131
- create a hook in the editor controller that fires on a model's save events
- use this hook to perform all the things that need to happen on save, regardless of where the save originated
- remove logic from instances of model.save() that now belongs in the modelSaved hook
- detach the model event listeners on willTransition in the editor routes
New posts pass PostsController sorting function at the top

- PostsController orderBy function sorts posts with isNew to the top, otherwise their undefined dates fail to compare
- also catch when `updated_at` is undefined, happens when model is being written with results from the server
- catch objects of type Error in validation engine, helps catching client errors
- join server errors with BR tag in ajax util
- add `emberBuild` task to `grunt test-functional`
- add a test helper, `thenTransitionAndWaitForScreenLoad`, to test transitioning to major parts of the app
- add a test that transitions from Content to the Editor, and back to Content
Made ember version of reset password work

Closes #2843

* Implemnted the ember validator correctly for both reset request and actual reset (with the token)
* added reset validator
* changed the request route addresses to be `/authentication/passwordreset`
* changed the format of data to be `{ thing: [ {data } ] }`

Missing:
* notifications
* tests for these use cases
Merge pull request #3150 from javorszky/iss2843

Made ember version of reset password work
Merge pull request #3144 from darvelo/sort-new-posts

New posts pass PostsController sorting function at the top
Merge pull request #3146 from darvelo/tags-tracking

Fix tag updating on model save in editor controller
Use Device.js to determine mobile editor use

Ref #2570
- Adds new library, device.js to determine if the user is on an ios mobile
  or tablet.
Better handling of validation errors + more documentation

closes #3153
- this is all about the validation engine
- add a option, `opts.model`, to use a passed-in model directly if needed
- handle validators that return an array of strings, array of objects, or both
- ajax util returns either an array of errors or a single concat'd string
- remove formatErrors function from the mixin and make it private
- allow validation options to be passed into `.save()` since ember-data doesn't take params on `.save()` anyway
- streamline control flow
Merge pull request #3154 from darvelo/validation-update

Better handling of validation errors + more documentation
Replace the old admin with the ember admin

closes #3056

- Remove clientold
- Remove clientold tests
- Cleanup old admin helpers
- Remove old routes from admin and controllers from admin controller
- Comment out / remove old and broken tests
- Cleanup Gruntfile.js, bower.js, package.json etc

Still TODO:

- cleanup / add removed tests
- do we still need countable?
Merge pull request #3157 from novaugust/device

Use Device.js to determine mobile editor use
Merge pull request #3165 from ErisDS/issue-3056

Replace the old admin with the ember admin
Redirect signin if authenticated

closes #3147
- added beforeModel redirect
- added test
Persistent notifications

closes #3057
- add Notification model
- update injected Notifications object to handle persistent notifications
- load server notifications on setup if logged in otherwise on successful sign-in
- changed all existing notifications.closeAll calls to closePassive
- fixed dismissable/dismissible spelling in server API & tests
- add notifications.closeNotification method so DELETE calls can be made for server-originating notifications
Remove CSRF from client

no issue
- removed occurrences of csrf from client
Redirect setup if authenticated

closes #3145
- added beforeModel redirect
- added test
Improve ember casper test stability

fixes #3171, fixes #2382, refs #3130

- Moved grunt init from travis into grunt validate, this makes sure we get verbose output from grunt init.
- Added `grunt test` task to run just the tests without building if you want
- Upgraded grunt-contrib-concat and added nonull property (had to switch to src/dist for this to work) #2382
- Upgraded bower to 1.3.5, which appears to resolve #3171
- Changed bower git assets to all be referenced the same and removed resolutions again #3130
Merge pull request #3168 from sebgie/issue#3147

Redirect signin if authenticated
Merge pull request #3170 from sebgie/csrf-remove

Remove CSRF from client
Merge pull request #3172 from sebgie/issue#3145

Redirect setup if authenticated