* If a user expressly closes a webcam (by clicking the 'X' button),
record this intent so that the webcam will not auto-open in case the
"auto-open my viewer's camera" happens again. Only clear the expressly
close intent when the user expressly clicks the video button on the
Who List to open someone's camera back up.
* Fix some bugs around booting and muting from cameras:
* If you boot someone off your camera, you can not open THEIR camera
anymore (similar to muting them)
* When opening a user who auto-opens your camera back: do not attach
your local video if you are an Admin and you have previously
muted/booted that user from your camera.
* Draw the slash mark over videos that you can not re-open because you
had booted that user off your camera.
* Add profile modal popups and Webhook support to get more detailed user
info from your website.
* Add "unboot" command, available in the profile modal.
Changes to the chat server:
* Blocking will not apply to admin user accounts (operators)
* Users who block an admin will instead mute them, but the admin can
still DM them if required
* Messages to VIP channels are broadcast to admins even if they are not
VIPs, e.g. so moderator chatbots can see
* On the Who List: VIP-only cameras to highlight with the VIP background
color on those buttons
Spin out components for:
* MessageBox: draw a chat message in the chat history panel as well as reused
in the Report Modal.
* WhoListRow: provides a consistent UX for the Who List and Watching tab. On
the Watching tab, the video button is replaced with the boot from video.
Other changes:
* Move VideoFlag into its own separate ES module.
* Emoji available reactions are moved into MessageBox.
* On WhoListRow: usernames are clickable to also open their profile page.
* On WhoListRow: the Watching tab is now sortable and follows the user's
sort selection like the Online tab does.