LateNight: Make spinnies show/hideable again.

TODO: need to replace the per-deck spinny selector with a new toggle button
LateNight: Finally fix previewdeck persistence.

Once again, I learned that widgetstack page 0 must correspond
with a toggle configkey being false.  I had the "true" state
as page zero, which doesn't work.
LateNight: Similar to the last commit, fix library persistence
Delete obsolete include directives
New SoundSource/AudioSource API

This is the first step towards a better/cleaner SoundSource API.
The operations for reading audio data have been moved into the
new abstract base class AudioSource.

Currently SoundSource inherits from AudioSource for technical reasons.
This is too much much coupling that needs to be broken up. I have
already some ideas on how to resolve it, but first this work needs to
be integrated.

During the refactoring I've noticed, that the quality and maturity of the
audio decoders for different file types greatly varies:

Good/mature:
- FLAC
- Ogg
- Opus
- WavPack
- libsndfile

Mediocre:
- MP3

Ugly/inefficient:
- M4A
- ModPlug

Untested AudioSource API:
- Apple CoreAudio
- Windows Media Foundation

Unfinished AudioSource API (just a hack):
- FFmpeg

Especially the code for the M4A decoder should be revised and cleaned up as
soon as possible, followed by a review of the MP3 decoder. Reading audio
data must work as stable and efficient as possible. This has priority over
the improvement of the internal software architecture!
Rewrite of the M4A decoder without legacy code
Slightly simplify the analysis of tracks
Initial cleanup of SoundSourceMp3 code
More SoundSourceMp3 optimizations and improvements
Move track metadata properties from SoundSource into separate DTO class
Fix missing FFmpeg initialization for unit tests