Improve handling of users and roles in admin

Closes #3083 Refs #3229
- Populates the dropdown list in the invite user menu with the
  list of roles a user is permitted to create.
- Users API now checks the invite user request for allowed roles.
- Change API response from 200 to 201 on successful invitation.
- Change API response from 500 to 201 when the user was created but
  the email was not sent.  The client will show a warning notification
  when it sees 'invite-pending' as the new user's status.
- Add support for "?status=all" to the /users endpoint.
- Refactor the route and controller for the /settings/users page so
  that there's only one network API call to load users instead of two.
Merge pull request #3388 from jaswilli/issue-3083

Improve handling of users and roles in admin
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

Caveats / questions

* I've added a `.get` route as well for testing. I'll remove that if I get thumbs up from yall
* Not sure what the return value should be on successfull deletion. Currently it's `{user: []}`
* Not sure what to do with a process that might fail halfway through. Deleted all the content, but user remained because of an error.