fix mandatory client logfile

The logfile can't be created before the commandline arguments are parsed,
because before that, the home directory is unknown. This patch logs
into a memory buffer which is then copied to the logfile as soon as
the logfile is created after processing the commandline arguments.

The memory buffer is created during the initialisation of global variables,
and destroyed after the logfile is created.
Keep selected player in op menus, when other player (dis)connects

Until now, when in, for example, kick player menu there was selected
some player and (dis)connected other player with lower CN, then this
earlier selected player was moved to other item in menu, but number
of selected item didn't change, so other player was selected.
Test work - ignore player menu
Add custom description of demos

Custom description is displayed in "Watching demo" and "Play demo" menu.
Add AssaultCube's CodeBlocks project for Linux
Don't show HUD reflection on water surface

For reflectclip > 1 player's HUD reflects on water surface.
Improve vote info

The commit:
1. adds additional small vote result for hidevote < 2, visible below radar,
2. sets default value of hidevote to 1,
3. shows final vote result in console.
Optimize and fix autodownload feature

The commit:
1. fixes value of download speed in KB;
2. introduces unique names of progress_callback() functions;
3. removes one unnecessary write_callback() function;
4. removes duplicated code/info in loadmodel().
Add alter pages in serverbrowser and improve favourites

Alter pages in serverbrowser were implemented with use favourites feature.
Categories of favourites, which will be displayed in alter pages, have to
be included in "serverbrowseraltpages" alias (accessible also in "edit
favourites" menu).
Switching between alter pages is possible with use ALT + mouse wheel or
"[", "]" keys.

The commit adds also MATCH category to favourites and shows category name
in settings of favourites.