OF-2871: Support password for alternate, when destroying room
Per XEP-0045, the room destruction command and notification can include an alternate room, as well as an optional password to be used for that alternate room.
This commit adds support for the optional password.
OF-2862: Refactor MUC 'role' and 'affiliation' usage
Many privileges in multi-user chat are tied to either ‘roles’ or ‘permissions’, as defined in XEP-0045. Openfire’s existing implementation bases the ‘MUCRole' implementation as the source of much. As the ‘MUCRole' class is available only when a user is currently in the chat room, this prevents functionality that’s aught to be allowable when a user is not.
Refactor Openfire’s implementation to explicitly base permission handing based on roles and affiliations.
OF-2862: Restore functionality lost in refactoring
When kicking a user from a room, the reason for kicking, as well as a reference to the actor, should be part of the presence stanza that's sent out.