player_thread: implement missing "idle" events on output errors

When all outputs fail, MPD automatically pauses playback, but did not
emit the IDLE_PLAYER event.  Thus, clients were not woken up.  (Mantis
3665)
command: allow to omit END in ranges (START:END)

If END is omitted, mpd should use the highest possible value instead of raising an error.
This partially reverts 52e9cab1c1743f64a7
Merge branch 'v0.17.x'
{output,mixer}/winmm: convert to C++
mixer_plugin: convert to C++
clock: add missing include
clock: fix usec-to-usec factor
Add some comments to keep track of timer units.
fix typos in upstream's mpd.conf.5
Merge branch 'v0.17.x'
IcyMetaDataServer: increment iterator

Fixes segmentation fault.
Idle, GlobalEvents: use std::atomic::exchange()

Less overhead than fetch_and() for what we do.
GlobalEvents: wake up only if the flags were empty

Don't bother checking for the parameter mask.  This doesn't matter.
The only thing that matters is if a wake-up is already pending.
GlobalEvents: use g_idle_add() instead of WakeFD()

Use the GMainLoop specific function to wake up the main loop.  This is
simpler and comes with very little overhead.
ffmpeg decoder plugin: do not allocate an AVFrame on stack.

AVFrame must be allocated with avcodec_alloc_frame().
ffmpeg decoder plugin: do not allocate an AVFrame on stack.

AVFrame must be allocated with avcodec_alloc_frame().
command: don't print undefined audio_format

Check audio_format_defined().
player_control: don't emit IDLE_PLAYER before audio format is known

Eliminates one IDLE_PLAYER call in playlist_control, and add two new
ones to player_thread.  Fixes Mantis bug 3636.
.gitignore: stricter matches
Makefile.am: enable "dist-xz"