Replaced Audio::*Codec with new Audio::*Track

It makes more sense to have the Codecs be the Tracks since they access the raw
data stream directly and return PCM frames.

The Player will read from the Tracks and write to the PCM, kinda like a real
player reads from a track and outputs to the speakers.
Refactored Audio::PCM and Audio::Player.

First submodule to get shared/weak variables removed.
Audio backend targets replaced with specific names.

CMake was not rebuilding the target when the backend was switched.
Tweaks for Audio Dummy Backend.
Old implementation cleanup
Remove old audio component.
Merge branch 'audio_rework' into develop