Preparation for improved team key binding handling.
Team-specific bindings: add/alter commands, handle keypresses.

/bind sets only the spectator/default string and shows all bindings.

/unbind, by default, clears all bindings.
With two parameters (team, key), clears the specified team binding.

/editbind, by default, edits the spectator/default binding.
With two parameters (team, key), it edits the specified team binding.

/teambind TEAM KEY BINDING is added to handle team-specific bindings.

Teams may be named or numbered:
0 s spec spectators d default
1 h humans
2 a aliens

VM calls are affected: they prefer bindings specific to the current team.

This obsoletes use of cg_{human,alien,spectator}Config for key bindings.
Better to use spec/default bindings from the VM code for now.
Allow for team key binding retrieval & setting in VM code.

Make use of the retrival changes in the tutorial code.
Fix team name handing for /teambind etc.
‘default’ is better than ‘spec’ when listing the key bindings.
Bug fixes.
Merge branch 'master' into teambinds

Conflicts:
	src/gamelogic/ui/ui_shared.c
Setting a new binding (/bind, menu) clears team-specific bindings on that key.

If you want just a default binding while retaining team-specific bindings,
use /teambind default KEY COMMAND.
Be more flexible about matching team names for /teambind etc.
Kill Key_GetBindingByString: it's unused and not really needed.
Bump the syscall ABI version; kill macros for removed trap calls.

Compat is already broken due to the team binding changes.
Enum for ‘all teams’ (for clarity in bindings-handling code).
Fix bindings setting from VM code (was segfaulting due to teambind changes).
Bindings menu: remove unused data, make const where possible.
Merge branch 'teambinds'
Split key bindings out into a separate configuration file.