manpage: update config file locations

Also add some explanations how the config paths are determined.
sub: fix undefined behavior with dvd://

The string could get reallocated.

CC: @mpv-player/stable
af_volume: fix calculations including replay-gain

rgain is not an additive value. It's a multiplier/gain.

Previous behaviour produced negative level values in some cases
(when rgain < 1.0) which caused volume to be louder when its value
was lowered.

CC: @mpv-player/stable

Signed-off-by: Mohammad Alsaleh <CE.Mohammad.AlSaleh@gmail.com>
Signed-off-by: wm4 <wm4@nowhere>
av_common: remove unneeded field

This is actually needed for encoding only, and not decoding. Drop it.
player: make the time display relative to start PTS

This commit makes the playback start time always at time 0.

Signed-off-by: wm4 <wm4@nowhere>
options: support setting start time relative to start PTS

Signed-off-by: wm4 <wm4@nowhere>
player: fix start position when specifying with percent
demux_mkv: add some overflow checks etc.

Some of these might be security relevant.

The RealAudio code was especially bad. I'm not sure if all RealAudio
stuff still plays correctly; I didn't have that many samples for
testing. Some checks might be unnecessary or overcomplicated compared
to the (obfuscated) nature of the code.

CC: @mpv-player/stable
demux_mkv: cosmetics
options: fix --gapless-audio default value

It was intended to be set to "weak" (and that was even documented), but
the actual setting was "no".

Closes #890.

CC: @mpv-player/stable
build: set default cdrom and dvd devices on linux
options: add --list-protocols option
README: fix link to release policy document
demux: minor cleanups
Audit and replace all ctype.h uses

Something like "char *s = ...; isdigit(s[0]);" triggers undefined
behavior, because char can be signed, and thus s[0] can be a negative
value. The is*() functions require unsigned char _or_ EOF. EOF is a
special value outside of unsigned char range, thus the argument to the
is*() functions can't be a char.

This undefined behavior can actually trigger crashes if the
implementation of these functions e.g. uses lookup tables, which are
then indexed with out-of-range values.

Replace all <ctype.h> uses with our own custom mp_is*() functions added
with misc/ctype.h. As a bonus, these functions are locale-independent.
(Although currently, we _require_ C locale for other reasons.)
demux_mkv: minor improvement to overflow check

CC: @mpv-player/stable
demux: drop AVI special code

I'm pretty sure libavformat does this automatically, and we don't have
other demuxers where this could happen.

Still, slightly "risky" - so let's see.
command: change cache perentage to float, add cache-free and cache-used
command: cache can actually have full-size 0

Then it's simply empty.
command: remove some code duplication in cache properties

This also means that the printed size is always rounded to KBs, because
the cache properties are returned in KB. I think this doesn't matter
much. But if it does, the cache properties should probably changed to
return bytes in the first place.