[WIP] Proper Audio/Video Dumping

Screwed up the previous PR, replacing with new PR

Old notes: https://github.com/dolphin-emu/dolphin/pull/1183
Can you please not depend on Core? eg CoreTiming should be passed as parameter. In this way, this dumper will be independet from the emulation at all.

Video encoding (maybe async sometimes...) is complicated enough to get its own layer.