input, lua: make removing key bindings work

This just kept adding bindings to the input section, rather than
defining it. One bad effect was that mp.remove_key_binding() in Lua
didn't work.
vda: use implicit current GL context

Removes the dependency from the Cocoa backend in case we are not using
it but still wanna use VDA GL introp.
vda: make independent from cocoa backend

Basically, don't access the vo field.

There's also no reason anymore to access MPGLContext. We still need to
access loaded GL functions though, so add a field for that to gl_hwdec.

Untested.
vaapi/GLX: don't access VO backend

Same as with the VDA change.
vdpau/GLX: don't access VO backend

Same as with the previous commits.

In theory, vdpau/x11 GL interop doesn't assume GLX. It could use EGL as
well. But since it's always GLX in practice, so we're fine with this.

Remove the gl_hwdec.mpgl field - it's unused now.
vo_opengl: move hwdec parts into their own files

This wasn't done before because there was no advantage in "abstracting"
it. This changed, and putting this into its own files is better than
messing it into gl_common.c/h.
vo_opengl: make uninit idempotent
lua: fully cleanup removed key bindings

This is basically cosmetic; it was leaking the old handler functions.
video/filter: kill vf_pp (libpostproc)

This is an ancient filter, and we assume it's not useful anymore.

If you really want this, it's still available in libavfilter (e.g. via
--vf=lavfi=[pp...]). The disadvantage is that mpv doesn't pass through
QP information to libavfilter. (This was probably the reason vf_pp still
was part of mpv - it was slightly easier to pass QP internally.)
video: remove internal QP passing

This was required by vf_pp, which was just removed.

vf_dlopen has this stuff in its API. This API is considered stable, so
the related fields are not removed from it. But the fields are always 0
now, so there's no point in keeping the example program around.

vf_pullup.c did some extremely awkward passthrough of this information,
but didn't actually use it.
video: remove things forgotten in previous commit

Oops.
build: showqscale was removed
dvd, bd, osc: disable OSC while a menu is active

They interfere.

It turns out that commit b6ca4a48 actually broke this in weird ways, but
this solution is better anyway.
coreaudio: fix prints of uint32_t in log_layout
coreaudio: fix more layout prints
coreaudio: reject descriptions with too many channels

This is a fix attempt for #1279 and #1249.
build: update to waf 1.8.4
input: add a hack to fix keyboard navigation with dvd/bd menu

If the user has LEFT/RIGHT/etc. bound in his input.conf, then these were
overriding the menu keys in dvdnav mode.

This hack works because the dvdnav crap happens to be the only user of
MP_INPUT_ON_TOP. If it finds a default key binding in the dvdnav menu
section, it will use that, instead of continuing search and possibly
finding the user key bindings meant for normal playback.
dvd, bd: don't unnecessarily block on demuxer/stream all the time

This was completely breaking any low-level caching. Change it so that at
least demuxer caching will work.

Do this by using the metadata cache mechanism to funnel through the menu
commands.

For some incomprehensible reason, I had to reorder the events (which
affects their delivery priority), or they would be ignored. Probably
some crap about the event state being cleared before it could be
delivered. I don't give a shit.

All this code sucks. It would probably be better to let discnav.c access
the menu event "queue" directly, and to synchronize access with a mutex,
instead of going through all the caching layers, making things
complicated and slow.
discnav: remove redundant call

This was made the default a while ago.