player: update cache state only if requested

Add a mechanism to the client API code, which allows the player core to
query whether a client API event is needed at all. Use it for the cache
update.

In this case, this is probably a pure microoptimization; but the
mechanism will be useful for other things too.
command: export demuxer cache info properties
options: more detailed output for --vf-... error message