The audio_file classes (wav, ogg, opus) represent audio files.

- audio_file is an abstract base class that holds the audio data and info.

- each derived class loads the data in its constructor.

- currently the old code is used for the loading.
Audio file factory

The audio_file_factory class has one static method that returns a
std::unique_ptr<audio> that points to a wav_file, ogg_file or
opus file depending on the extension of the provided filename.
Changed the name of bit_depth to byte_depth

The name was changed because bit_depth was inaccurate.
The value is the actual bytes.
Audio file returns const pointer

Changed the void pointer that is returned by audio_file.get_audio_data()
to const void.
Remove MusicSound

Since the file system does not support partially loading a file
MusicSound does not have any uses. Its functionality is now
part of LoopingSound.
Remove the audio_file hierarchy

Removed the audio_file (and {wav,ogg,opus}_file} in favor of a simpler
AudioData struct, which contains the relevant audio data. Reduce the
audio_file_factory to functions that return AudioData objects.
Update CMakeLists.txt
AudioData now deletes any memory it owns.

If rawSamples* is owned by an AudioData object, it will be deleted
during destruction, this is the case for loaded audio files.

Also, a few ugly casts were removed.
Bring licence info up to date.
Remove commented out code from tr_main.c to tr_world.c
Remove commented out code in the rest of the renderer
Remove remains of HDR, Deferred rendering, SSAO and DoF
Remove unused shaders and Rotoscope
Remove the COMPAT_ET COMPAT_Q3A and VOLUMETRIC_LIGHTING compile defs
Remove support for MDC, PSK and PSA
Do not check for MDS, it is not supported, thanks ZTM
Update the CMakeList for the removal of PSK and MDC
Fix IQM support being removed

Thanks ZTM for pointing out a bug in the initial commit.
Fix CGame compat
Remove film grain and vignette effect