vo_opengl: fix srgb for subtitles

Based on a patch by nand. This is needed, because sRGB mode changes the
video over-all gamma. This has to be done for subtitles as well.
The final srgb_compand() call in the OSD shader compensates for the fact
that in ed8fad729d04 framebuffer use was replaced with doing sRGB
conversion manually by srgb_compand().

This only affects subtitles rendered with libass. Nothing is changed for
RGB subs.

Also change the USE_ flags for OSD shaders to USE_OSD_ to make the
difference between video and OSD rendering more apparent.
vo_opengl: fix compatibility with OpenGL 2.1

The srgb_compand() function passes bvec to mix(), which is apparently
not available on GL 2.1 / GLSL 1.20:

0:0(0): error: no matching function for call to `mix(vec3, vec3, bvec3)'
0:0(0): error: candidates are: float mix(float, float, float)
0:0(0): error:                 vec2 mix(vec2, vec2, vec2)
0:0(0): error:                 vec3 mix(vec3, vec3, vec3)
0:0(0): error:                 vec4 mix(vec4, vec4, vec4)
0:0(0): error:                 vec2 mix(vec2, vec2, float)
0:0(0): error:                 vec3 mix(vec3, vec3, float)
0:0(0): error:                 vec4 mix(vec4, vec4, float)

Also add back disabling color management on older GL, as the
srgb_compand() function is needed for that.
mpv_identify: stop using \n; fix property name handling

Dashes are not valid in shell variable names. This changes them to
underscores.
Rename directories, move files (step 1 of 2) (does not compile)

Tis drops the silly lib prefixes, and attempts to organize the tree in
a more logical way. Make the top-level directory less cluttered as
well.

Renames the following directories:
    libaf -> audio/filter
    libao2 -> audio/out
    libvo -> video/out
    libmpdemux -> demux

Split libmpcodecs:
    vf* -> video/filter
    vd*, dec_video.* -> video/decode
    mp_image*, img_format*, ... -> video/
    ad*, dec_audio.* -> audio/decode

libaf/format.* is moved to audio/ - this is similar to how mp_image.*
is located in video/.

Move most top-level .c/.h files to core. (talloc.c/.h is left on top-
level, because it's external.) Park some of the more annoying files
in compat/. Some of these are relicts from the time mplayer used
ffmpeg internals.

sub/ is not split, because it's too much of a mess (subtitle code is
mixed with OSD display and rendering).

Maybe the organization of core is not ideal: it mixes playback core
(like mplayer.c) and utility helpers (like bstr.c/h). Should the need
arise, the playback core will be moved somewhere else, while core
contains all helper and common code.
Rename directories, move files (step 2 of 2)

Finish renaming directories and moving files. Adjust all include
statements to make the previous commit compile.

The two commits are separate, because git is bad at tracking renames
and content changes at the same time.

Also take this as an opportunity to remove the separation between
"common" and "mplayer" sources in the Makefile. ("common" used to be
shared between mplayer and mencoder.)
Add missing compat/libav.h includes

For avcodec_free_frame().
libav.h: increase compatibility by not including libavutil/version.h

libavutil/version.h was only recently split off from
libavutil/avutil.h, and that file includes version.h anyway.
mp_common.h: split parts into mp_talloc.h and compiler.h

Put MP_EXPAND_ARGS() in compiler.h, even though it's not compiler
dependent. Both mp_talloc.h and mp_common.h need it, while mp_common.h
includes mp_talloc.h. This is the least annoying solution.
Add MP_NORETURN and replace av_noreturn uses

av_noreturn is a rather recent addition to libavutil, and defining it
ourselves is trivial and makes playing compatibility games easier.
win32: remove pointless get/release DC wrappers
Makefile: fix install targets

INSTALL_TARGETS-yes is a leftover from INSTALL_TARGETS-$(MPLAYER), which
was removed in 4873b32c5959c988af1769529ff72e3fd62fba82.
vf_dlopen: fix a typo in zeroing memory (thanks, pigoz)

Accidentally had put the & inside the sizeof call too. Typing too fast.
clang: fix all warnings except deprecations
ao_coreaudio: fix deprecation warnings
mixer: fix lowering hw volume while muted

Lowering volume while muted did not work correctly with audio outputs
that support native mute setting separate from volume (ao_alsa and
ao_pulse), because the AO-level volume was not set while muted but was
still being read back. Fix by setting the AO volume in this case.
network: fix crash with -playlist http://...

The function fixup_network_stream_cache() accesses stream->opts, which
is NULL in some cases when loading playlists. stream->opts is a pointer
to the global MPOpts struct. For simplicity, this parameter is left
NULL in some cases. Usually, this doesn't matter, because barely
anything in stream/ uses MPOpts anyway.

Hack-fix this for now by not accessing MPOpts and disabling the stream
cache in this case. Calling open_stream() with options==NULL now
basically means: do not use cache settings.
build: remove doc/locale language auto-detection, simplify

This removes the rather complicated configure and Makefile parts
related to auto-detecting available languages for manpages and locales.
We don't have non-English manpages or any locales, so this is
pointless. It didn't even work: configure --language=all created an
invalid config.mak that would cause "make install" to fail.

Remove installation of locales. There are no translations at all which
could be installed. Should there ever be someone who is interested in
adding translations, this can be added back in a simpler way.

Rename the --enable-translation configure option to --enable-gettext.
This is what this option really does: enable gettext() use. This may
be interesting for people who want to experiment with localizing mpv,
but is entirely useless for normal use.

Remove detection of the binary codecs directory in configure.
TOOLS: remove checktree.sh

Nice idea, but essentially useless. Unmaintained even in mplayer-svn.

Remove broken remains of the checkheaders target too.
Makefile: add mpv.rst dependencies

Using a really dumb rule declaration.
build: build manpage by default if rst2man is detected

Add building the manpage to the all target (which is also the default
target). This fixes the behavior that "make install" tried to build the
manpage if it wasn't built yet.

Add rst2man detection to configure, and disable rst2man usage in the all
and install targets if it hasn't been found. You can still build or
install the man page manually (by using the install-mpv-man target),
but the all and install targets won't attempt to use rst2man.

Additionally, building/installing the manpage by default can be
explicitly inhibited using the --disable-manpage configure option.
It's possible to avoid rst2man by using "make mpv install-no-man" as
well.