player: don't try to use duration 0
audio: add mp_audio_pool

A helper to allocate refcounted audio frames from a pool. This will
replace the static buffer many audio filters use (af->data), because
such static buffers are incompatible with refcounting.
audio: add function to convert AVFrame to mp_audio references

This is somewhat duplicated from ad_lavc.c and af_lavfi.c, but will
eventually be used by both.
af_format: remove redundant message prefixes
audio: change how filters are inserted on playback speed changes

Use a pseudo-filter when changing speed with resampling, instead of
somehow changing a samplerate somewhere. This uses the same underlying
mechanism, but is a bit more structured and cleaner. It also makes some
of the following changes easier.

Since we now always use filters to change audio speed, move most of the
work set_playback_speed() does to recreate_audio_filters().
audio: clear buffer array too with mp_audio_set_null_data()
audio: add mp_audio_make_writeable()
audio: make decoders output refcounted frames

This rewrites the audio decode loop to some degree. Audio filters don't
do refcounted frames yet, so af.c contains a hacky "emulation".

Remove some of the weird heuristic-heavy code in dec_audio.c. Instead of
estimating how much audio we need to filter, we always filter full
frames. Maybe this should be adjusted later: in case filtering increases
the volume of the audio data, we should try not to buffer too much
filter output by reducing the input that is fed at once.

For ad_spdif.c and ad_mpg123.c, we don't avoid extra copying yet - it
doesn't seem worth the trouble.