Add touchscreen input

Adds touch input to HUD scripts.

- Tapping the crosshair toggles zoom.
- Holding the timer opens the scoreboard.
- Weapon selection using weapon HUD icons.
- Touch areas (using cursor position and size): touchJump, touchCrouch, touchAttack, touchSpecial, touchMove, touchView.
- Movement touch input acts as a D-pad with thresholds (cg_touch_moveThreshold, cg_touch_strafeThreshold).
- View touch input can be used both for swiping and as a virtual joystick. Configurable with cg_touch_pitch/yawThreshold/Speed cvars.
- New HUD variables:
 - TOUCH_FLIP: whether the player wants to swap the left and right side of the screen (cg_touch_flip cvar).
 - TOUCH_ATTACK/TOUCH_SPECIAL: whether the attack/special touch buttons are held.
 - TOUCH_UPMOVE: >0 if holding touchscreen jump button, <0 if holding duck, 0 if holding neither or both.
- The crosshair size is now proportional to the screen size.

To send a touch event, the OS must call CL_TouchEvent(int id, touchevent_t type, int x, int y, unsigned int time).