client API: qthelper: add a refcounting wrapper around mpv_handle

This is useful to deal with crazy Qt object lifetime issues (the
following commit needs it).
DOCS/client_api_examples: qtquick: fix destruction

Destruction (e.g. when closing the window) was a bit broken. This commit
fixes some possible crashes, and should make lifetime management
relatively sane. (Still a bit complex, though. Maybe this code should be
moved into a tiny library.)

QtQuick runs the renderer on a separate thread. This thread is rather
loosely connected to the main thread. The loose separation is enforced
by the API, which also makes coordination of initialization and
destruction harder. Throw refcounting at the problem, which fixes it.
The refcounting wrapper introduced in the previous commit is used for
this.

Also contains some general cleanups.
DOCS/client_api_examples: qtexample: use queued signals

Use queued signals instead of QEvent for the wakeup notification. This
is slightly nicer, and reduces the chance that the event (QEvent::User)
could clash with other code using the same event.

Also switch to modern connect() syntax.
DOCS/client_api_examples: add an explicit license

IANAL, but we don't give a shit what you do with this code.
client API: qthelper: return NULL as handle if unset

Creating a plain Handle() should yield a NULL mpv_handle.

Also, remove the redundant non-const definition of the conversion
operator. At least in this situation it's not needed.

Also, add include guards around qthelper.hpp.
Merge branch 'master' of https://github.com/mpv-player/mpv into s2api