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.
Maybe split in two methods for symmetry with the setup methods?