Update validation to match server error.

When a using the forgottenRoute if you enter an incorrectly formatted
email address you would see the error message 'Invalid Email', however
if you entered an email address that was correctly formatted but missing
the error message would be 'Invalid email address'.

This fixes the discrepancy.
Implement user and related content deletion

Closes #3100

* Introduces `destroyByAuhor`, given a context and an id, it will check if context has permission to delete the user by the id, and then deletes all the content where `author_id` is id, and then deletes the user
* Does multiple checks to make sure user exists
* Added a fixture `posts:mu` that creates 4 users belonging to 4 roles, 50 posts that have authors evenly distributed, 5 tags and all 50 have one tag attached to it, evenly distributed.

Caveats / questions

* Started testing
Make importer more robust for tags

Closes #3242

- Add checks for valid fields in tags and posts
- Add unit test with empty tag export data file
- Add unit test with empty post export data file
Add keyboard navigation of posts

Closes #3015
- Added stepThroughPosts method to PostsRouter, takes a integer, goes that far, wraps around the array.
- PostsPostRoute notifies the PostsController of which model it currently has, to help stepThroughPosts know who's selected
Merge pull request #3470 from novaugust/up-down-posts

Add keyboard navigation of posts
Merge pull request #3467 from rwjblue/update-validation-to-match-server-error

Update validation to match server error.
Merge pull request #3371 from javorszky/iss3100

Implement user and related content deletion
Post list: authors see their own posts

issue #3446
Limit Posts for Authors.

* Ensures that posts listing only shows posts that the current user
  authored, if they only have the Author role.
* Do not transition into the posts.post route if the current user is
  not the author (but has the Author role). This is needed because
  the API server will always return the post (regardless of the current
  user).
User Settings: Display cog based on rights

closes #3400
- The user view has been extended to have properties indicating whether
the user has rights to make the displayed user an owner or delete
him/her
- Handlebar conditionals decide whether or not to display the cog
Merge pull request #3474 from felixrieseberg/iss3400

User Settings: Display cog based on rights
Completed post & user list filer by role

closes #3446, closes #3086

- Authors can only ever get to their own posts
- Editors only ever see authors in the user list
User edit & add endpoints cleanup

- edit and add endpoints don't assume role
- edit and add endpoints cope with no role, role objects, and strings
- resend user invite was failing at one point due to no role being sent, but this shouldn't be required
- other random api cleanup
Redirect to the first available post for current user.
custom slugging capabilities for individual user pages

closes #3401
- modifying slug-generator to be more generic
- adding slugging capabilities for /settings/users/:slug
- modified posts to use the updated slug-generator
Avoids duplicate notification / transition

no ref
- Let application.js handle transition after setup
- Remove duplicate loading of server notifications
Fixing pg build.

refs #2499
- Properly reference pg client
- Fix broken sql queries
Merge pull request #3462 from ErisDS/issue-3446

Post list: authors only see their own posts
Merge pull request #3475 from ErisDS/api-clean

User edit & add endpoints cleanup
Update user roles in store after owner transfer

Closes #3466
- Transferring the owner role is now done via a separate
  endpoint and not through Ember-Data.  As a result the
  user role data needs to be updated manually.
- Updated the owner endpoint to return a response body
  containing the updated user objects.
- Updated tests.