Add support for tracking metadata changes in audio

Please note the open questions / TODOs in `get_current_tags()`, I didn't want to spend any time deciding those quite yet. Also there is more than enough ready to review at this stage.
I also wanted to add `library.add(track, tags=tags)` for the coverart stuff @tkem has been doing, but that will be a followup PR after this one gets done.