Add a mutation to remove organization user

Follow-up from #409314 (comment 1519060869).

Background

We need a way to remove a user from an organization. We should create a GraphQL mutation that makes this possible.

Requirements

  • Removing a user from the organization will remove it from all the groups and projects of the organization.
  • The user account stays intact. Organization Owners do not have rights to destroy accounts until Enterprise Users are moved to the Organization level.
  • Only an owner can remove users
  • An owner can only be removed if they are not the last owner
  • If the user is a member of only 1 Organization, they are added to the default Organization upon removal from a non-default Organization.

Implementation plan

Needs refinement

Edited by Peter Hegman