Add a mechanism for non-button +commands to trigger key-up handling.

When executed, a +command must call a function, either trap_PrepareKeyUp()
for cgame code or IN_PrepareKeyUp() for client code.

Conflicts:
	src/engine/client/client.h
Deprecate ‘unsafe’ in /set commands in favour of an early ‘-unsafe’ switch.

“set… <var> <value> [unsafe]” is deprecated but still recognised (for now).
“set… [-unsafe] <var> <value>” is used instead: it avoids messy parsing of
the end of the command string.
Initial support for alternative shaders based on entity state.

This adds an extra shader keyword, ‘when’, which appears at the same level
as diffuseMap etc. It takes two parameters: a word describing what condition
(purely a convenience for the reader) and the name of another shader.
Currently, there are two condition names: ‘unpowered’ and ‘destroyed’.

Which alternative shader is used is set when calling R_AddRefEntityToScene:
the code (usually cgame) sets the altShaderIndex member of the parameter to
a value in enum altShader_t.

This is implemented and working for (some) MD5 building models, and
implemented but untested for MD5 player models.
Bump VM ABI version.
Merge branch 'master' into for-0.18

Conflicts:
	src/engine/client/cl_input.c
	src/engine/client/client.h
Rework MD5 buildable animation loading.

This loads a few extra animations.

"idle3" → "powerdown"
BANIM_IDLE3 → BANIM_POWERDOWN
  This is used for human buildables when power is lost.
  It is no longer looped.

"destroy2" → "destroy_unpowered"
BANIM_DESTROY2 → BANIM_DESTROY_UNPOWERED
  This is used when an unpowered buildable (human or alien) is destroyed.
Actually use the ‘destroy_unpowered’ animation for MD5 buildables.

The fallback is the normal ‘destroy’ animation: there will therefore be no
change for any given buildable type unless the new animation is defined for
it.
Uncommented USE_REFLIGHT in tr_types.h
Merge pull request #250 from Forty-Bot/for-0.18

Uncommented USE_REFLIGHT in tr_types.h
lcc doesn't like empty initialisers…
Fix up buildable sounds; pull buildable sound & animation init data together.
Add a specific ‘idle_unpowered’ animation.
Merge branch 'master' into for-0.18
- animation fixes
Adjust bbox for new medi station model.
Move alt shader condition names into cgame; tell renderer on startup.
Add Shadow Clip Maps for negative light shadows.

Shadow Clip Maps are shadow maps that store the distance to the nearest
wall, and disable shadowing on all pixels that are further away than the
distance stored in the Clip Map, so that the negative light shadows don't
pass through walls.
Add gloss map support
Don't cull inner faces of armour. (Fixes see-through bug.)
Update configs & shaders for new models.

Also, split up the old reactor shader file, creating separate files for the
armoury and the repeater.