wayland: implement dropping files on the VO window

Needs some proper testing.
wayland: move workaround to fullscreen code

Because of this workaround there was a bug in the wayland vo.
Now it works on both vos (opengl and shm) as it should.
wayland: Remove nonsense comment and add warning

The reason a segmentation happend here was because we couldn't get the
requested minor version. The major version is enough for differentiating
between OpenGL 3 and OpenGL 2. If it fails there is still a fallback to any
version available.

Also add a warning if we use the fallback.
wayland/egl: add egl_context to the wayland state

At the moment there are visual glitches when we resize the window. This happens
because in wayland there a special function for resizing EGL windows.

To prevent the glitches move the egl_context to the wayland state in
wayland_common.h and add a new control function to gl_wayland.c to wrap the
vo_wayland_control function to check for resize events.

With the new control wrapper the glitches are gone and the resizing is fluid.
wayland/egl: use redraw callback

This solves the issue where we would not receive any frame events. The
difference to my earlier tests is that now it looks like eglSwapBuffers uses
it's own event queue or something similiar along the lines. Becaues the
performance is the same as without any redraw callback.
wayland/egl: misc fixes and cleanups
input: move files drag and drop to a new event.c file

event.c will be used to feed the input queue with 'global' events that don't
mesh well with the usual check_events path in mpv.
cocoa: refactor files drag and drop on the Dock icon

Use the newly added `mp_event_drop_files` core function instead of having
logic in the platform dependent code.
cocoa: handle files drag and drop on the player video view
build: fix build on old build system

Regression from 082c5c19
demux_subreader: reject file if not opened by --sub

demux_subreader.c contains the old MPlayer subtitle parser, and I have
absolutely no confidence in this (very crappy) code. There might be
one or two security risks associated with running that code on
arbitrary input.
video/out: remove some code duplication between X11 and wayland

Both X11 and Wayland support the same format for drag & drop operations
(text/uri-list), and the code for that was copied from x11_common.c to
wayland_common.c. Factor it out.
input: change mp_input_run_cmd signature

I don't like this function at all, but it's basically a trick to get the
input's mp_log instance in a case the mp_input_parse_cmd_strv() is
almost certainly not going to output anything. But still make it
somewhat more consistent with mp_input_parse_cmd_strv() - why force the
caller to always use MP_ON_OSD_AUTO?
wayland: fix obvious bug in dnd code

I still don't think this is the right approach.
wayland: remove workaround

The changes in the vo_wayland_ontop function have no effect on the workaround.

Somehow the problem just disappeared. I guess it is because of the new control
function in gl_wayland.c where the resize happens immediatly after the event
dispatch/flush.
Revert "wayland/egl: use redraw callback"

Because of this commit there were problems displaying the frmase in their right
order.

This reverts commit 96e75d234a4df1a09f38eaf932d00d79dccdc324.

Conflicts:
	video/out/gl_wayland.c
	video/out/wayland_common.h
player: don't select subtitles added from quvi by default

Quvi subtitles are considered external subtitles (simply because they're
separate from the audio/video stream), but for the sake of subtitle
auto-selection, they should not be considered external.

Change this so that quvi subtitles are treated like muxed subtitles
(with default flag never set). This means subtitles won't be selected by
default, unless explicitly requested with --sid or --slang.
manpage: fix typo
player: print an error message if run command fails

Note that we can't use mp_msg, because it's not async-signal safe (we
might be running other threads while forking, so only functions
specified to be async-signal safe can be called, and this doesn't
include stdio; mp_msg acquires a mutex too).

Also, always print a \n before running the program to flush the status
line. The effect is that a program running successfully as well as the
error message will effectively start on a new line.
player: always ise [statusline] for terminal OSD

This was inconsistent: the actual statusline used [statusline] as
message prefix, while other parts of the terminal OSD used [cplayer]
(and MSGL_STATUS). This commit makes it consistent.