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.
demux: don't print message if replaygain tags were not found

Even thouhg it was printed in verbose mode only, it was annoying.
demux: explicitly wake up playback thread on metadata change etc.

Probably doesn't matter much in practice.
ao_alsa: try to fallback to "default" device if device is busy

ALSA is crap. It's impossible to make multichannel playback just do the
right thing. dmix (the default on most distros) can do stereo only, and
will refuse to play multichannel. On the other hand, if you try like mpv
(and mplayer) to open a multichannel device (like "surround51" etc.),
this will actually open a hardware device, which will either fail if
dmix is active, or block out dmix if opening succeeds.

This commit falls back to "default" (i.e. dmix) if opening a
multichannel device fails, which is a tiny step towards the right
behavior. (Although fixing it fully is impossible.)
cocoa: don't async redraw when waiting for VO redraw

This fixes the very annoying glitch where the black bars disappear for
a single frame when going fullscreen.
ao_alsa: simplify, remove no-block suboption

If no-block was given, the device would be opened with SND_PCM_NOBLOCK.
Also, after opening, blocking mode was unconditionally enabled anyway
with snd_pcm_nonblock(). Further, if opening with SND_PCM_NOBLOCK
failed, opening was retried without this flag.

This doesn't make any sense to me, and I've never heard of someone using
this suboption. I suspect it has to do with ancient ALSA bugs or API
caveats. Remove it and simplify the code.
coreaudio: don't print layout a second time

For #1279
coreaudio: add missing \n in log line
gitignore: ignore waf directory on Windows

In native Windows, waflib is kept in /waf-1.8.4-* or /waf3-1.8.4-*
instead of /.waf-1.8.4-* and /.waf3-1.8.4-*
Merge pull request #1314 from rossy/win-waf-gitignore

gitignore: ignore waf directory on Windows
coreaudio: don't output too many channel descriptions

for #1279 and #1249
osc, dvd, bd: fix mouse state when changing menu modes

The flags weren't correctly set, and the mouse cursor remained visible
after leaving menu mode.

This was apparently broken in 0.7.0 too.

Fixes #1316.
ao_alsa: hackfix mono playback

ALSA returns "FL" as channel layout when trying to play mono. mpv and
libavresample don't like this; in particular, using libavresample to
convert stereo to "FL" fails.