ao_coreaudio: move spdif code to a new AO

The mplayer1/2/mpv CoreAudio audio output historically contained both usage
of AUHAL APIs (these go through the CoreAudio audio server) and the Device
based APIs (used only for output of compressed formats in exclusive mode).

The latter is a very unwieldy and low level API and pretty much forces us to
write a lot of code for little workr. Also with the widespread of HDMI, the
actual need for outputting compressed audio directly to the device is getting
lower (it was very useful with S/PDIF for bandwidth constraints not allowing
a number if channels transmitted in LPCM).

Considering how invasive it is (uses hog/exclusive mode), the new AO
(`ao_coreaudio_device`) is not going to be autoprobed but the user will have
to select it.
ao_coreaudio: remove useless call to print_asbd
ao_coreaudio: move device related functions to the new AO
ao_coreaudio: split control to helper functions
ao_coreaudio: fill asbd with an helper function
ao_coreaudio: rename init_lpcm -> init_audiounit
ao_coreaudio: remove useless comments
ao_coreaudio: use mpv's internal pull API
ao_coreaudio: move channel mapping away from utils

Channel mapping functions are only used in the AUHAL based coreaudio, so move
them there.