DOCS, client API: add mpv release versions

The intention is to make it obvious which mpv releases certain changes
will apply to.

Also attempt to fix RST formatting of the list. This is not very proper,
but probably good enough.
demux_mkv: cosmetics
demux_lavf: fix read_seek return value

This returned a stream error value directly to libavformat, which can't
make sense. For example STREAM_ERROR (0) means success in libavformat
error codes. (The meaning of the libavformat read_seek return value is
underdocumented too.)
demux_lavf: cleanup debug output

Remove unnecessary prefix, remove some messages.
demux_lavf: don't dump transport stream programs

Probably useless.
demux_lavf: support OTF fonts in Matroska

Apparently it's FFmpeg only.
demux_lavf: for now, ignore the new libavformat image demuxers

Recently, libavformat added demuxers to open image files like normal
demuxers. This is a good thing, but for now they interfere with the
operation of demux_mf. Add them to the blacklist until there is a proper
solution.

(The list doesn't contain _all_ recognized image formats, just those
that might interfere with demux_mf.)

CC: @mpv-player/stable
demux: move packet list functions

Move them to the only place where they are used, demux_subreader.c.
demux: move packet functions to a separate source file
demux: make replaygain per-track

It's unlikely that files with multiple audio tracks and with replaygain
actually happen, but this change might help avoid minor corner cases
with later changes.
demux, stream: change metadata notification

(Again.)

This time, we simply make it event-based, as it should be. This is done
for both demuxer metadata and stream metadata.

For some ogg-over-icy streams, 2 updates are reported on stream start.
This is because libavformat reports an update right on start, while
including the same info in the "static" metadata. I don't know if that's
a bug or a feature.
demux: make start time a simple field

Simpler, especially for later changes.
demux: cosmetics: minimize code
demux: set filepos field when dequeuing a packet

Otherwise the position can be too far ahead.
discnav: fix a comment
dvd, bluray, cdda: add demux_disc containing all related hacks

DVD and Bluray (and to some extent cdda) require awful hacks all over
the codebase to make them work. The main reason is that they act like
container, but are entirely implemented on the stream layer. The raw
mpeg data resulting from these streams must be "extended" with the
container-like metadata transported via STREAM_CTRLs. The result were
hacks all over demux.c and some higher-level parts.

Add a "disc" pseudo-demuxer, and move all these hacks and special-cases
to it.
dvd: flush buffers properly on seek

Suggested by tholin on github issue #882.

This is not entirely clean, but the fields we're accessing might be
considered internal to libavformat. On the other hand, existence of the
fields is guaranteed by the ABI, and nothing in the libavformat doxygen
suggestes they're not allowed to be accessed.

CC: @mpv-player/stable
dvd: move angle switching code

No need to provide a "nice" API for it; just do this stuff directly in
the command code.
demux: minor simplification to internal API

Also some other unrelated minor changes.
tv: move demuxer parts to separate file

Now all demuxer implementations (at least demuxer API-wise) are in the
demux directory.