command: fix debug output

It was a bit ugly/annoying.
player: adjust uninit order of components

Most things should be allowed to access the client API unconditionally
(for example for sending events), so move destroying the client API
down. Also, mp_uninit_ipc() should happen before the point at which all
clients are shutdown, or there will be a small time window in which new
clients can be created after destroying them all.
video: send MPV_EVENT_VIDEO_RECONFIG on uninit

This event basically means "something about video changed", and uninit
is certainly an important change.
player: disable --force-window if VO fails

Otherwise, it'd retry creating the window all the time.
command: add vo-configured property

So a client API user can know when a window is created or destroyed.

Also might be useful for the OSC: it could disable itself if video is
disabled.

Before this commit, there were only indirect ways of detecting this.
demux: cache STREAM_CTRL_GET_BASE_FILENAME

It's needed for some obscure feature in combination with .rar reading.
However, it's unconditionally used by the subtitle loader code, so take
care of not blocking the main thread unnecessarily.

(Untested.)
demux: don't access stream while lock is held

Although this is fine when the stream cache is active (which caches
these and returns the result immediately), it seems cleaner not to
rely on this detail.

Remove the update_cache() call from demux_thread(), because it's sort
of in the way. I forgot why it exists, and there's probably no good
reason for it to exist anyway.