Allow for URL escaping of [ and ].
Tell travis not to do builds on some branches.

In the case of engine-upgrade, this can be reverted once travis uses
new-enough gcc & clang.
Make +commands work properly on key-up.

This is done by making use of the stored key-down information for the
+commands to determine which -commands are to be executed when a key is
released.

The key binding is no longer used on key-up and is not modified on key-down
(though a few extra commands are executed).
Clear button activations when registering button commands.
Sort surfaces before creating the world vbo

Also ignore surfaces that require CPU deforms because we won't use the vbo in that case
Don't needlessly transpose the tangentToWorld matrix

In glsl, v * mat is equivalent to transpose( mat ) * v
Don't try to load or save compiled shaders if no binary formats are defined.
Move the key-down clearing into a separate function; call it when initialising cgame.
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.
Align the tess struct in the renderer

This fixes a warning on startup
Add header file information to CMakeLists to make it more IDE friendly
Merge branch 'master' of https://github.com/Unvanquished/Unvanquished
Fix previous commit which introduced file conflicts
Drop all key events generated while loading; forget what's pressed.

Turns out that they're queued for the first frame and are all processed
then, which defeats clearing the button info. And if they're converted from
SDL input events to game input events, the key-up events get lost (which may
be a problem in the new +command handling).

Easier and cleaner just to drop them all.

‘I was typing when it started loading the next map’ command execution was a
manifestation of this buffering problem and is therefore fixed by this
change.
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.
Actually load the idle3 animation.

Previously, idle2 was being loaded twice.
Merge branch 'master' into for-0.18

Conflicts:
	src/engine/client/cl_input.c
	src/engine/client/client.h
Make +commands with args sticky.

You will need to execute the corresponding -command to unstick.