Add alternative views in serverbrowser and improve favourites

Alternative views in the serverbrowser are implemented with use favourites.
Categories (names) of favourite servers, which will be displayed on the
views, have to be included in "serverbrowseraltviews" alias (accessible
in menu).
Switching between views is possible with use Alt + Mouse wheel and
Alt + Up/Down (or eventually "[" and "]", if they are dedicated keys
on your keyboard).

The commit also:
1. adds MATCH category to favourites;
2. shows category name in settings of favourites;
3. shows weights in serverbrowser instead of favourites image,
when showweights = 1;
4. cleans up some tabs.
fix filtering of serverdescriptions for ascii scores
less ugly mapdims

replaced the mapdims array with a struct with properly identified members

also reduced the calclight postfilter to actually used map areas
Fix OSX fullscreen issue.
Updates project (for OS X) to SDL v1.2.15.
Possible issues:
 - SDL_SetGamma seems to be bugged? If a user is having issues have them do /gamma 100 and restart AC
 - ???
Fixes OpenAl Error (A004) upon shutdown.
Basically removes the buffers _after_ stopping all sounds.
Updating SDL to 1.2.15

Updates header files in source/include
Updating SDL_image for OS X
Change position of "SCROLL/SPACE..." HUD messages

Now "SCROLL/SPACE..." messages will be visible on the right side
of display, in every standard aspect ratio.
Fix for conver_mapconfig.sh: Allow spaces in filenames.
removed CUBE_TODO.txt

Has been outdated for nine years and is apparently a huge distraction for
wannabe new coders.
Don't show HUD reflection on water surface

For reflectclip > 1 player's HUD reflects on water surface.
It fixes https://github.com/assaultcube/AC/issues/75
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().
track missing models without "nomodel"-crutch

* missing models now have their own list "mdlnotfound".
* also added a few comments (looks silly, though)
add entry for autodownload in misc settings menu
Add custom description of demos

Custom description is displayed in "Watching demo" and "Play demo" menu.
Fix spectating after disconnection of spectated player

Before if you watched player from the first spectating position
(SM_FOLLOW1ST), and that player disconnected, then you switched
automatically to another player, but also to second spectating position
(SM_FOLLOW3RD), instead of stay in SM_FOLLOW1ST - this commit fixes that.
Allow persistent spectating concrete player in multiplayer

For spectatepersistent = 1 that is always enabled (that means, that
spectated player isn't changed after his death), for 0  - only in
non-arena modes, except of demos.
"if(!available.length()) return f;" is introduced, in order to, in arena
modes, doesn't happen switching to SM_FLY, when last alive players dies
in the same moment and there is no winner of the round.
Fix output messages in console

Fixes:
1. show time remaining in system console after each minute;
2. correct form of minute(s);
3. show info "everyone died!" instead of "team SPECTATOR has won
the round!" in demo mode;
4. show correct info to which team (name) was player forced, when player1
is spectator.
Add the clock to scoreboard and change clockdisplay

Commit shows time in format mm:ss in scoreboard, instead of
"X minutes remaining" info.
It also enables the clock default on the HUD and adds "clockcount"
variable which let to choose between counting forward or backward
in the clocks.

DOCREF clockdisplay clockcount
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.