build: add -Wno-format-zero-length

This warning makes absolutely no sense. Passing an empty string to
printf-like functions is perfectly fine. In the OSD case, it just sets
an empty message, practically clearing the OSD.
old-configure: minor improvements

Use a trap to remove the temp dir on exit. Write config.log to old_build
instead of the top-level dir.
ao_sndio: fix some incorrect comments

The AO API always uses sample counts.
ao_sndio: set non-blocking flag

Otherwise the feed thread and the playloop will get randomly blocked.

This seems to fix most A/V sync issues.
ao_sndio: change p->delay to samples

This was in bytes, but it's more convenient to use samples (or frames;
in any case the smallest unit of audio that includes all channels).

Remove the ao->bps line too; it will be set after init() returns.
ao_sndio: update buffer status on get_delay

get_delay needs to report the current audio buffer status. It's
important for A/V sync that this information is current, but functions
which update it were called on play() or get_space() calls only.
ao_sndio: print a warning when draining audio

libsndio has absolutely no mechanism to discard already written audio
(other than SIGKILLing the sound server). sio_stop() will always block
until all audio is played. This is a legitimate design bug.

In theory, we could just not stop it at all, so if the player is e.g.
paused, the remaining audio would be played. When resuming, we would
have to do something to ensure get_delay() returns the right value. But
I couldn't get it to work in all cases.
audio/out: fail init on unknown audio buffer

A 0 audio buffer makes push.c go haywire. Shouldn't normally happen.
audio/out: disable ao_sndio by default

Don't build it, move it down the autoprobe list even if it's enabled. It
doesn't work well enough.