Contrib: use pic for postproc to mimick FFmpeg rules
aout: add event to request pipeline reinitialization
aout: do not unset stereo-mode when changing device
aout: use aout_RequestRestart() where applicable
auhal: switch analog playback to the 2.1 API

This makes use of a 3rd party circular buffer licensed under MIT.

TODO: Pause, TimeGet, Flush
auhal: implement Pause for the 2.1 aout API
opensles: implement mute/volume set

link with libm, and also with libdl which is needed
Remove variable name clashes in TAB_REMOVE

If foo[i] or bar[i_index] are used in TAB_REMOVE / TAB_FIND, they will
use another variable with local scope declared inside the macro.

for (int i = 0; i < 1; i++) {
    TAB_REMOVE( count, array, foo[i] );
}

will expand to:

for (int i = 0; i < 1; i++) {
    int i_index;
    .....
    for (int i = 0; i < count; i++)
        if (array[i] == foo[i])
        {
            index = i;
            break;
        }
    .....
}

And inner scope i is used to index foo, instead of the outer scope i
which we would expect without knowing the content of the macro.
OSS: blind compile fix
file: do not stat() non-seekable files and clean up
ALSA: report selected device not only when playing
OSS: updates and fixes (untested)
Fortune: OSS, French vs Finish administration
deinterlace: split MMXEXT acceleration for IVTC to separate functions

That causes some duplication, but that is required for clobber lists.
deinterlace: move Phosphor MMX acceleration to a separate function
deinterlace: clobber MM and XMM registers correctly
Contrib: update live555

Close #7786
Qt: QPalette: fix obsoleted values
OSS: trivial fixes
contrib: update XCB