Server::sendMessage: encode the source IP of outgoing UDP packets to match the UDP socket's address family.

Murmur uses the saiTcpLocalAddress field of ServerUser to determine
the correct source address of outgoing UDP packets. On some systems,
such as multi-homed setups, this is important for correct datagram
delivery.

The saiTcpLocalAddress field is initialized when the client first
connects. Its value is extracted from QHostAddress, and then
converted to a sockaddr struct via our own HostAddress class's
toSockAddr method.

HostAddress::toSockAddr is implemented such that any IPv4 address
(including IPv4-mapped IPv6 addresses) will always cause a sockaddr
struct belonging to the AF_INET (IPv4) family to be output. Pure IPv6
addresses will be output as an AF_INET6 sockaddr.

The code that this change touches assumed that it could use the
value of saiTcpLocalAddress directly as the source address in UDP
packets.

This is not always the case. On most systems, Murmur will listen on
[::]:64738 by default, and as such, the address of the server's UDP
socket will be in the AF_INET6 family. Attempting to send packets
with a source address in the AF_INET family using that socket will
cause sendmsg() to return EINVAL on some systems, if not all.

The new code for the sendmsg() code path converts the ServerUser's
saiTcpLocalAddress back into a HostAddress, which, internally, is
fully IPv6. If the input address is IPv4, HostAddress will convert
it to an IPv4-mapped IPv6 address.

When the client's UDP socket is of the AF_INET6 family, we can now
trust that the HostAddress, 'tcpha', is either a real IPv6 address,
or an IPv4-mapped IPv6 address. This allows us to use the 'tcpha'
address regardless of the address family of the saiTcpLocalAddress.
We can simply memcpy it in place.

When the UDP socket is of the AF_INET family, we can only set the
source address if the saiTcpLocalAddress is also AF_INET, or if
it is of the AF_INET6 family and its address is an IPv4-mapped IPv6
address. When a pure IPv6 address is encountered in that path, it is
simply dropped.
Update changelog
Rename header guard defines to not use c++-reserved names

* as pointed out in issue #842
adjust names to match other header files
Adjust header guard defines for uniformity

* Append underline to header guard defines to match the others (except ui_)
* Add guard to header files GlobalShortcut
* Adjust mklic.pl script to add guard to licenses.h,
and add updated licenses.h.
Prepend Projectname to header guard defines

* some few (4?) files actually already had it
add path (sub-src) to header guard define
categorize scripts (move example scripts for serverside into subfolders)
Add guard define to licenses.h
Make sure mklic.pl always outputs LF endings
Upload european portuguese translation
add new translation pt-PT to project files

* add new pt-PT translation to mumble project files
* qt-pt is already added (for the pt_BR translation)
Apply patch #960: add preprocessor #if for OpenBSD

It seems the include file <netinet/in_systm.h> has to be included not only by FreeBSD but also OpenBSD, as reported and patch supplied in #960.
Update Hebrew translation by patch #366

#366 submitted an updated ts file. This has been integrated.
Add Hebrew translation to project files

It was removed for the 1.2.4 release because it was unfinished. Now that we have an updated translation, as because this is after 1.2.4 add it again.
lupdate translation files - mainly for HE

Lupdate the translation files. This changes mostly just line-numbers. But for HE this fixes the markup, and escapes certain characters.
Adds positional audio plugin for Sub Rosa

Does not include context or identity information.
Implement copy constructors, minor cleaning

* Implement copy constructors for classes with allocated memory.
** ServerDB gets a private not implemented copy constructor to effectively prevent copying, as it uses the static db field as a member.
* Fail hard on subsequent ServerDB instantiations
reduce varscopes
Prevent overlay from disappearing on D3D DLL reloading.

This is confirmed to fix the missing overlay in Guild Wars 2.

When D3D was used by a process thus loading the DLL, but then unloaded we did not inject on subsequent loading of the D3D DLL (in the same exe). Guild Wars 2 did un- and reload the DLL when switching from their launcher to the game.
This commit introduces HardHook::reset() and checks for inactive hardhooks for a newly loaded DLL.

The changes were submitted on sourceforge
https://sourceforge.net/p/mumble/bugs/909/#bf9e
comments. more elaborative debugoutput, consistent prefixing.