Refactor message handling in audio

And other step in the direction of the API I recently made a pastebin dump of. Also fixes how and when we trigger seek and stream changed events.
I'm moving these out in the commits to come for the next parts of the refactor. Idea is to have this class be stateless and only route messages and events and log, send audio listener events or call the playback class.

All in all making this nice and easy to test :-)