Fix client freeze due to deadlock (#1167)

See issue for deadlock cause. Removed need for ClientUser::get
call causing the c_qrwlUsers read lock in audio output thread
by moving feature implementation into GUI thread analog to how
application attenuation is handled. Now a global flag signals to
the audio output thread if priority speaker should be triggered
even though none of the outputs are priority speaker.

Also fixed asymmetric behavior between local and remote priority
speaker handling in the feature. Now also whisper and shouts trigger
the local priority speaker feature.

Minor refactoring in places that had to be touched to improve
readability. Removed some now superfluous comments.
Refactor ClientUser to UserModel/MainWindow signal & slot connections.

Previously the muteDeafChanged() and the talkingChanged() message were
used to indicate user state changes to model and GUI. With time even
changes not related to mute and deafen started to use muteDeafChanged()
to trigger wanted GUI update behavior that was uniform for all state changes.
This re-use muddied the meaning of the corresponding signals and slots.

This patch refactors the corresponding signals & slots to have well defined
meanings again. The ClientUser gains a prioritySpeakerStateChanged and a
recordingStateChanged signal. The existing state change signals were renamed
accordingly. As the upper layers - as indicated by code duplication in the
model as well as signal & slot re-use - don't need that granularity the
corresponding slots were unified into a userStateChanged() slots all
xxxStateChanged() functions are connected to.