Fix: Add forward declaration and include

* Sadly, this seems to not be necessary for all compilers, hence it was
missed.
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.
mumble: fix Mac build after the overlay header refactoring.
L4D2 PA plugin update to game version 2.1.3.5 (#1184)

By Ophidiophobia.
Add hidden option to disable pubserver list (FR #1120)

Added ui/disablepubliclist which if set to true removes the
public server list in the connect dialog. This option isn't
available in the UI and is meant for customizing setups in
specific deployments.

On windows you can enable the option by creating a string key
disablepubliclist under HKEY_CURRENT_USER\Software\Mumble\Mumble\ui
with the value true.
Added hidden option to disable add/edit in connect dialog (FR #1120)

When set removes add/edit options from the connect dialog.
This is meant to be used in occasions where the user isn't supposed
to change the set list of favourite servers.

On windows you can enable the option by creating a string key
disableconnectdialogediting under HKEY_CURRENT_USER\Software\Mumble\Mumble\ui
with the value true.
Make paths in fx11-build.pro case sensitive
Drastically simplify release.pl.

Previously release.pl did complex parsing of .pro
files to figure out which files to include in the
tar ball.

This change removes this logic and instead performs
the minimal modifications needed under the assumption
of a clean tree and then uses system tools to create
the tar.gz and zip files.
Missed DIST dependency on mkini.sh results.
Adjust build error text (missing submodule dir)

* Adjust the error text of when the build notices a git submodule
for a third party library was not initialized.
The new text should be more precise and compact.
compiler.pri: explicitly target Windows XP when specifying output binary's subsystem.

MSVS 2012 and 2013 default to outputting binaries that require Vista or greater.
compiler.pri: explicitly specify -ARCH:SSE for MSVS 2012 and 2013.

The C++ compiler in these versions os Visual Studio default to
generating SSE2 code, unless this is overridden with /ARCH.
Plugins: add support for the 'path' attribute in plugin auto-update XML.

This new attribute specifies an absolute path on a Mumble services
host that a given plugin is available at:

  <plugin name="borderlands2.dll"
          hash="(...)"
          path="/plugins/<os>/<abi>/borderlands2.dll" />

This path is directly usable with our WebFetch class.

We need this to be able to properly service multiple plugin ABIs
and/or OSes at the same time.

We could have overloaded the meaning of the 'name' attribute, and
have passed the absolute path in there, but the chosen approach
is more explicit about its intentions.

Being explicit about the 'path' attribute also makes it easier to
understand how backwards compatibility is handled: Since Mumble 1.2.5
and prior verisons do not know about the 'path' attribute, they will
keep simply using the 'name' attribute as their pointer to the DLL
file. This means we'll have to keep serving the DLLs for these older
clients at <webroot>/plugins/<name>.

In practice, this means that all plugins that can be requested by
these older clients will need to have a copy that lives at
<webroot>/plugins/<name>. Since these clients only support
(abi=1600, os=Win32) we can ensure on the backend that plugins for
that combo are served at /plugins/<name>.
mumble_plugin.h: change plugin magic values in preparation of the MSVS 2013 switch-over.

Mumble 1.3.0 on Windows will be built with MSVS 2013. That means
that old plugins will no longer load into it (Mumble will crash
if we try), because of C++ ABI differences between MSVS 2010
and MSVS 2013.

To combat this, we switch our plugin magics such that no ABI
mismatches can happen: Old clients will refuse to load new plugins,
and new clients will refuse to load old plugins.

We have a precedent for doing this. See dac82c99 (MSVS 2010 switch-over).
Bump version to 1.3.0
installer: update Product.wxs to refer to the VC120 CRT.

Without this, we'd be bundling the wrong CRT for MSVS 2013.
installer: change InstallerVersion to 405 to be able to merge with MSVS2013 VCRedist.
installer: automatically embed VCRedist 12.0 DLLs when env var MumbleNoMergeModule is set.

This commit updates the old RedistDirVC10 files to point to their new version 12 copies,
now that we build with MSVS2013.

It also implements an easy way to opt-out of using merge modules for the VCRT
redistributable DLLs.

With this change, if the environment variable MumbleNoMergeModule is set,
the installer build will automatically embed the VCRedist DLL files as
regular files into the final .MSI.

To avoid this behavior, one can set MumbleNoEmbedVCRedist=1. So, to build
a Mumble installer with no VCRT merge modules *and* no embedded VCRT DLLs,
one would set *both*

  MumbleNoMergeModules=1
  MumbleNoEmbedVCRedist=1
installer: drop InstallerVersion back to 300. add note about InstallerVersion requirements for VC12 redist to MergeModuleDir setting.

This change effectively reverts commit 0e447428ba8380581297e3e619967a09dda036ed.