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-2861: Move MUCRole.Role and MUCRole.Affiliation to upper level
Both public enums are first-class citizens, being explicitly defined in the XEP and used throughout the code.
As the MUCRole class is plenty large, lets move these two enums to a class of their own.