Make icon compatible with WinXP

The icon failed to render under WinXP both
as an application icon in explorer and as a tray icon.
Just opened and saved it again in GIMP and that fixed it.
Don't know what exactly was wrong, the only difference
I noticed is 256 -> 16 color depth change. But since
the image consists just of the black color of varying
transparency, I think it's fine.
Change tray icon until focused

This is to make having unread messages more apparent,
especially when the window is minimized to tray.

I whipped up a new acid-trip-like easy-to-notice icon
for that purpose, due to the lack of an official
tray notification icon mockups. Feel free to change it.
Add unused.h with UNUSED macro
Fix unused parameter warnings in obviously correct places
Fix unused parameter warnings for userdata in callbacks
Fix unused parameter warnings for Tox*.

We have a single global instance of Tox,
so in many places we don't care.
Mark unused coord/element parameters in UI functions.
Fix unused parameter warning in messages_set_typing()

is_typing state is directly extracted from friend/group,
that corresponds to the MESSAGES ui element.
Fix unused parameter warning for tox_thread()

Not used anywhere, and thread creators actually
just pass NULL there.
Rewrite context menus with i18n support

CONTEXTMENU struct is generalized by introducing
ondisplay() callback for fetching menu item strings,
and adding a userdata field.

One out-of-the-box CONTEXT variety is provided.

It treats userdata as an array of UI_STRING_IDs
to be displayed (beware, contextmenu_new() function
doesn't copy the array, so make sure it has proper lifespan).

All previously existed context menus are replaced with it.
Add i18n text for various dropdowns
Add russian-localized text for dropdown menus
Move hardcoded dropdown menus from .h to .c
Rewrite dropdown menus with i18n support

DROPDOWN struct is generalized by introducing
ondisplay() callback for fetching menu item strings,
making onselect() accept simple menu index
instead of a handle (it almost always coincided anyway),
and adding a userdata field.

Two out-of-the-box DROPDOWN varieties are provided.

Simple dropdown treats userdata as array of
UI_STRING_IDs to be displayed.

List dropdown treats userdata as array of DROP_ELEMENTs,
and there are helper functions for adding and deleting them.

All of previously existing dropdowns are replaced with
one of them, except dropdown_language, which is now
autogenerated to contain all existing languages,
instead of being hardcoded.
Let activated dropdown menus resize to fit containing text

This will prove necessary for localized menus,
for it's not always possible to fit text
into the same width as with English.
Let context menus resize to fit containing text

This will prove necessary for localized menus,
for it's not always possible to fit text
into the same width as with English.
util.c: fix possible out of bounds array access
Merge branch 'resizable-dropdowns' 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 'fix-unused-parameter-warnings' 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 'resizable-context-menus' 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.