Add support for user avatars in the core protocol

Add a protocol and the APIs to straightforwardly support user avatars
in client applications. The protocol is designed to transfer avatars
in background, between friends only, and minimize network load by
providing a lightweight avatar notification for local cache validation.
Strict safeguards are imposed to avoid damage from non-cooperative or
malicious users and to limit network usage.

The complete documentation is available in docs/Avatars.md and sample
code is available in testing/test_avatars.c.

Code and documentation are released under the GNU GPLv3 or later, as
described in the file COPYING.
Reduce max udp packet size to 2K.
Lowered minimum transfer speed.
Added TOXDNS_MAX_RECOMMENDED_NAME_LENGTH define that clients can
choose to ignore if they want.
Prevent core from doing DNS requests when UDP is disabled.
Remove support for avatar image formats other than PNG

Support for other formats was deemed unnecessary in the code review
and therefore removed. The value for the constant TOX_AVATARFORMAT_PNG
is now set in stone; if the other formats become needed again in the
future, this commit shall be reverted and the enum values reordered to
keep compatibility.
Tox is now shown as being online only when properly announced.
Remove chattiness from avatar data transfers

The chatty approach for the avatar data transfer was intended as a
security feature to add explicit delays to the transfer and prevent
amplification attacks among authenticated friends. This was deemed
unnecessary in the code review and, therefore, replaced by a simpler
approach that sends all data in a single burst.
Fixed memory leak.
Fixed test.
Updated cross-compile instructions
Merge branch 'avatars' of https://github.com/ittner/toxcore
Some fixes to avatar pull request.

Some bug fixes.

Grouped all avatar related functions in the same place in tox.h
Fixed typo.
Merge branch 'update-crosscompile-instructions' of https://github.com/nurupo/InsertProjectNameHere
Added some checks to mutex related functions.
ifdef out use of linux/limts.h in test_avatars

This fixes building on OS X and other systems whose limits.hs have PATH_MAX.
housekeeping
Merge branch 'stal888-patch-1'
remove tox_avatar_hash