This diff handles the flow for deleting custom roles. There are two cases to consider here when a role is deleted: (1) if there are no members assigned to the role, just delete it. (2) If there are members assigned to the role, then we need to display in the Alert message that they will be assigned to the default role (I did not hardcode the role name 'Members' since we're allowing it to be renamed, so instead I pull the default role name from the threadInfo).
A lot of the code in this diff is the scaffolding for the deletion API, so I decided that covering it all in one diff would be more logical and easier to review.
Depends on D8564