demux_lavf: get updated metadata from a packet if available

The side_data type is brand new in ffmpeg.
stream_lavf: prefix icy metadata with "icy-"

ICY metadata is not always of good quality, and especially if there are
proper tags. We don't want the ICY metadata override the tags.
demux: handle tag updates differently

Instead of printing lines like:

    Demuxer info GENRE changed to Alternative Rock

Just output all tags once they change. The assumption is that individual
tags rarely change, while all tags change in the common case.

This changes tag updates to use polling. This could be fixed later,
although the ICY stuff makes it a bit painful, so maybe it will remain
this way.

Also remove DEMUXER_CTRL_UPDATE_INFO. This was intended to check for tag
updates, but now we use a different approach.
demux_lavf: clear metadata on update, instead of merging it

Assume a metadata update is a full update. Clear the previous metadata,
so that tags which existed only in the previous metadata are removed.
demux: fill metadata directly, instead of using wrapper functions

Get rid of demux_info_add[_bstr] and demuxer_add_chapter_info.

Make demuxer_add_chapter_info return the chapter index for convenience.
demux: reword "Clip info:" line to "File tags:"
DOCS/crosscompile-mingw: update

MXE's ffmpeg is not old anymore.
DOCS/crosscompile-mingw: use Markdown
DOCS/waf-buildsystem: add link to the Waf book