audio: fix fallback if audio API does not support mono

This makes it fallback to stereo properly.
audio: fix previous commit

This would have always forced mono first (if supported by the AO),
instead of stereo.
ao_alsa: remove some dead code

This was only added recently (c1e97161) as an attempt to minimize the
bad impact of channel layout device aliases. But use of these was
removed in commit 49df0132. Now this code does pretty much nothing, and
shouldn't be needed anymore. It does something when using spdif, but
this fallback won't work anyway.
ao_alsa: fix setting mono channel map

When setting the ALSA channel map, we never actually set the map we got
from ALSA directly, but convert it to mpv's, and then back to ALSA's.
mpv and ALSA use different conventions for mono, and there is already an
exception for ALSA->mpv, but not mpv->ALSA.
player: don't show "0%" percentage in infinite streams
vo_opengl_old: fix OSD regression

Commit 0e8fbdbd removed the rg_texture requirement from vo_opengl;
commit 541f6731 changed to a more convenient method. Both commits broke
vo_opengl_old in some ways. vo_opengl_old always requires GL_ALPHA for
single-channel texture, because it draws the OSD without shaders and by
using certain blend modes.

So we need to explicitly distinguish between vo_opengl and vo_opengl_old
in the OSD renderer, and force fixed texture formats for vo_opengl_old.
The other logic is specific to the internals of vo_opengl. (Although it
might be possible to get the same result by playing with the old GL
fixed-function functions in vo_opengl_old. But seems like a waste of
time.)

Fixes #1370.
vo_opengl: GLES does not support GL_BGRA

Apparently GLES 2 and 3 do not support this. (The implementations I
tested with were derived from desktop OpenGL and were not overly strict
with this.)

This is no problem; just use GL_RGBA and mangle the channels in the
shader.

Also disable direct support for image formats like IMGFMT_RGB555 with
GLES; at least some of them are not supported in this form, and the
formats aren't important anyway.
Add Javascript scripting support using MuJS

Almost identical API to the Lua support, except:
- The global mp, mp.msg and mp.utils are always available
- On errors returning undefined and the error is at mp.last_error_string
- Timers are JS "standard" global set/clear Timeout/Interval/Immediate
- Supports CommonJS style module/require
- At mp.utils: read_file (any), and load_file, run_file for js files
- Global print and dump functions
- mp.options currently unsupported

Required Mujs (clone, make, make install):
- http://mujs.com/ - git://git.ghostscript.com/mujs.git
- Mirror - https://github.com/ccxvii/mujs
JS: 'reqire' was broken for scripts
JS: minor cleanups

- Stray printf's
- Remove names from anonymous functions which are unlikely
  to show on stack traces to reduce clutter
javascript: C style cleanups
options: allows javascript also when Lua is not configured
js: replace lua-opts for script-opts