decoder/{vorbis,flac}: use the tag_table library
decoder/flac: eliminate the remaining "gotos"

https://www.xkcd.com/292/
decoder/flac: use error messages from libFLAC
decoder/flac: symmetric FLAC__stream_decoder_finish() calls

Call it in the function that also invokved
FLAC__stream_decoder_init_*().
decoder/flac: check for errors only after _process_single()

The only other libFLAC call (seek) does not produce fatal errors.
decoder/ffmpeg: remove AV_VERSION_INT definition

All supported ffmpeg/libav versions have this.
decoder/ffmpeg: move code to ffmpeg_metadata.c
decoder/ffmpeg: use the tag_table library
decoder/gme: convert runtime check to assertion

When gme_track_info() returns with success, then the gme_info_t
pointer must be set.
decoder_plugin: scan tags with callback table

Pass a callback table to scan_file() and scan_stream(), instead of
returning a tag object.
decoder/{mikmod,fluidsynth,mp4ff}: adapt to tag_handler API

Fixes build regression.
decoder/wavpack: use the tag_table library
decoder/wavpack: move code to wavpack_scan_tag_item()

Remove clutter from wavpack_scan_file(), and use a (large) fixed
buffer for the tag item.
tag_handler: handle arbitrary name/value pairs

The new method pair() receives an arbitrary name/value pair.  Support
for this is being added to a few decoder plugins.
decoder/wavpack: bigger tag value buffer

Prepare for big CUESHEET tags.
playlist/embcue: new plugin for reading embedded cue sheets

Parses CUE data from the "CUESHEET" tag.  Needs further integration in
the update thread.
update_walk: move code to update_song_file()
update_walk: move code to update_io.c
update_walk: move code to update_db.c
update_remove: add header update_remove.h