More SamplerBank fixes.

* Open file in ReadOnly instead of WriteOnly when saving file.
* Give .samplerbank.xml extension hint when loading/saving the bank XML.
More SamplerBank fixes.

* If user cancels load/save then exit.
* Load an empty track if no location is in the sampler.
* Remove use of PlayerInfo.
* Use .xml instead of .sampler.xml because of QTBUG-38303.
Only connect signals if an actual track is loaded in BaseTrackPlayer.
Master Sync: various fixes.

* Make rate adjustment stronger based on testing
* fix unanalyzed tracks causing stopped playback (lp#1381744)
* don't disable quantize even if it's going to cause master sync issues. (lp#1321379)

tests still pass
Clean up skin loading a little bit.
Fix comment.
Oops -- use absolute path when checking selected skin.
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