Move STR enum aliases onto the same lines

This is to prevent accidental double-backing of
the internal enum counter by someone adding
new ids between an alias and what it refers to.
Rewrite buttons with i18n support
Start bitmap ids from 1

This is to reserve 0 id to indicate unused/invalid bitmap.
Truncate to width in drawtextwidth_right() for Linux

drawtextwidth_right() for Linux didn't honor width
limit, unlike the Windows version. E.g. overly long
friend nicks in chat window were rendered without limit
to the left.
Merge branch 'albel727-fix-right-adjusted-text-rendering-on-linux'

#
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Add i18n text for audio input devices
Improve i18n for audio devices list
Move special video devices closer to tox_av.c

Presence of always-present null input device "None"
should be announced by video_thread().

Presence of special video devices like "Desktop" is
os-dependent and should be announced by video_detect().

This commit implements that, so dropdown_video content
is never manipulated directly from main()/tox_thread()
initialization code paths.
Encode special handles for audio-in devices directly

Integer handles for special audio-in devices like
"None" and "Default Loopback" are encoded into pointers
by platform-specific code directly (which will expect
them later as pointers anyway), instead of doing it in
 NEW_AUDIO_IN_DEVICE and wasting param2 for it.
It also makes it uniform with how it's done for
special video devices.
Merge branch 'i18n-for-buttons' of https://github.com/albel727/uTox

#
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Merge branch 'better-i18n-for-devices' of https://github.com/albel727/uTox

#
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Italian translation: update
Extract transfer-related stuff into tox_transfer.h
Move transfer work out of main tox_thread loop
Dedent utox_thread_work_for_transfers()
Move utox_thread_work_for_transfers() to tox_transfer.h
Extract transfer callbacks setup into tox_transfer.h
Extract transfer stuff from friend.h into transfer.h
Move FILE_PROGRESS struct to transfer.h
Rename outgoing transfer functions