Moved interpretation logic to a separate service TranslationManager.

some renaming:
    translation bridges -> listener bridges
    translator bridges -> speaker bridges

When audio exited/listen only, or interpretation is inactive, interpretation-related UI elements will now be hidden.

Clicking "End Interpretation" will now trigger an event that informs all connected clients to:
    exit all listener bridges
    exit all speaker bridges
    join floor channel
    reset floor/translation volume
After translation is started, moderators can now use the "Open all bridges" button to connect all translator bridges at once.

Fixed a bug that would cause the interpreter audio listening channel to keep opened after an interpreter has joined a speaker bridge and left again.

Channel switching now only works if the channel is not already active.

Added some error handling and robustness improvements