vo: include normal render-ahead time in flip_queue_offset

A small refactor; shouldn't change any behavior.

Do this so immediate display can be achieved.
client API: expose OpenGL renderer

This adds API to libmpv that lets host applications use the mpv opengl
renderer. This is a more flexible (and possibly more portable) option to
foreign window embedding (via --wid).

This assumes that methods like context sharing and multithreaded OpenGL
rendering are infeasible, and that a way is needed to integrate it with
an application that uses a single thread to render everything.

Add an example that does this with QtQuick/qml. The example is
relatively lazy, but still shows how relatively simple the integration
is. The FBO indirection could probably be avoided, but would require
more work (and would probably lead to worse QtQuick integration, because
it would have to ignore transformations like rotation).

Because this makes mpv directly use the host application's OpenGL
context, there is no platform specific code involved in mpv, except
for hw decoding interop.

main.qml is derived from some Qt example.

The following things are still missing:
- a way to do better video timing
- expose GL renderer options, allow changing them at runtime
- support for color equalizer controls
- support for screenshots
x11: copy WinID option

For the purpose of making "--wid" setable at any time.
w32: copy WinID option

See previous and next commit.
options: --wid can be set at any time

After being bitten by this, I decided that this mostly unnecessary
requirement sucks.

Allowing this makes it easier to use libmpv, because it can be set after
mpv_initialize(). The latest reasonable time an API user can set this
variable is before actually loading a file.

The previous 2 commits make sure nothing bad can happen if the option is
changed at runtime even if a VO is active. The Cocoa backend should be
fine and doesn't need a change.
vo_opengl: make background color configurable

This mainly affects the black bars that are drawn if the window and
video aspect ratios mismatch.
vo_opengl_cb: simplify reconfigure, render transparent if unconfigured

I think that's expected; mpv shouldn't draw anything while no video is
active. This doesn't blend transparently, though.

Also document the vo_opengl_cb thing.
player: change interaction between revert_seek and ab-loops

The result isn't quite what I imagined, because the A-point is never
marked as a seek point (so you can't jump between A and B), but it's
still slightly better than before.
options: enable --ytdl by default

Let's see who complains...
vo_opengl: don't crash if framebuffers are not available

In theory, vo_opengl supports operation without framebuffers. But this
has been broken for a while now (commit cc00b3ff is a contender). It
crashed because it unconditionally called gl->BindFramebuffer() (which
is NULL if framebuffers are missing).

Since this function is actually only called to set the default
framebuffer, the simplest way to deal with this is to provide a dummy
function, insteas of uglifying the code with additional if branches.
vo_opengl: make shader text output slightly nicer

It was missing an indentation in some cases.
vo_opengl: fix linkage type

Can happen on Windows, I suppose.
DOCS/client_api_examples: remove nonsense

I thought setSamples() was some funky abstraction to set the number of
components, but it's actually something else.

Also fix the include paths.
manpage: update the ao_alsa example (no-block was removed)

Also, don't use the "hw" device, but "plughw". ALSA docs say never to
use "hw".
emux_mkv: fix possible uninitialized reads with short files

These actually are harmless. Even if the data the reader is working on
is essentially random, it's treated like untrusted input data, so there
should be no harm.

But it upsets tools like valgrind.

Probably fixes #1329.
command: add "idle" property

Yes, it's redundant with events.
vo: fix some nonsense

Commit d38bc531 is incorrect: the 50ms queue-ahead value and the flip
queue offset have different functions. The latter is about calling
flip_page in advance, so the change attempted to show video frames 50ms
in advance on all VOs.

The change was for vo_opengl_cb, but that can be handled differently.
m_option: never return NOPTS value as number from properties

MP_NOPTS_VALUE (basically INT64_MIN) is basically an special timestamp
value that means "unset" or "unknown". Its exact value is internal, and
should never be returned or interpreted by any API.

So return "no" instead (what is also what the parser accepts).
player: set a specific window title in idle mode

Instead of "(unavailable)".
player: update chapter marks when switching files

This wasn't done, so the chapter marks of the previous file were
visible. It's harmless, but looks unpolished, so fix it.