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
Merge pull request #3173 from ErisDS/issue-3171

Improve ember casper test stability
Merge pull request #3149 from kevinansfield/persistent-notifications

Persistent notifications
Signin Validation

closes #3120
- create `validateAndAuthenticate` action to validate, send `authenticate` action on success, notifications on error
- signin template uses `validateAndAuthenticate` action instead of `authenticate` action
Merge pull request #3159 from darvelo/signin-validation

Signin Validation
New edit user UI
Prevent stacking notifications during rapid toggle

No issue
-Call notifications.closePassive after the resolution of the
 promise that generates the notifications. Otherwise multiple
 promises can stack up after notifications have been cleared,
 which results in a bunch of stacked notifications.
-Remove some unnecessary propagation of rejected promises from
 action handlers that can result in unhandled reject errors.