command: redo ancient TV/DVB/PVR commands

Convert all these commands to properties. (Except tv_last_channel, not
sure what to do with this.) Also, internally, don't access stream
details directly, but dispatch commands with stream ctrls.

Many of the new properties are a bit strange, because they're write-
only. Also remove some OSD output these commands produced, because I
couldn't be bothered to port these.

In general, this makes everything much cleaner, and will also make it
easier to e.g. move the demuxer to its own thread.

Don't bother updating input.conf, but changes.rst documents how old
commands map to the new ones.

Mostly untested, due to lack of hardware.
m_config: add function to copy subopt-struct
tv: remove global option variables

Pretty much nothing changes, but using -tv-scan with suboptions doesn't
work anymore (instead of "-tv-scan x" it's "-tv scan-x" now). Flat
options ("-tv-scan-x") stay compatible.
tv: remove printing of useless comment information
stream_pvr: remove global option variables
stream: add a generic way to setup stream priv defaults

Usually, each stream driver declares the size and option list of its
private data. This was pretty natural for when most streams still used
global variables to setup their defaults. They did by pointing
priv_defaults to the (mutable) struct containing the option values. But
falls short when storing the option values in MPOpts. So provide a
somewhat inelegant but simple way to let the stream implementation setup
the priv struct at initialization time.

This is done with the get_defaults callback. It should return a copy of
the struct used in MPOpts. (A copy, because if MPOpts is changed, string
fields might be deallocated, and if that field is not described by
stream_info.options, it won't be copied on init.)
stream_cdda: remove global option variables
stream_dvb: remove global option variables
stream_dvd, stream_dvdnav, stream_bluray: remove global option variables
stream_dvd: minor cleanups

We don't need a separate stream_dvd.h header file anymore. Some dead
functions become apparent; remove them.
options: remove global variables for swscale options; rename them

Additionally to removing the global variables, this makes the options
more uniform. --ssf-... becomes --sws-..., and --sws becomes --sws-
scaler. For --sws-scaler, use choices instead of magic integer values.
demux_mf: remove global option variables
demux_raw: remove global option variables
vo_caca: remove global variables

The shit I put up with...
Add more const

While I'm not very fond of "const", it's important for declarations
(it decides whether a symbol is emitted in a read-only or read/write
section). Fix all these cases, so we have writeable global data only
when we really need.
vf_divtc: remove a global variable
vf_noise: remove global variables
options: remove a global variable

This is probably the last one, at least with my current configuration.
vd_lavc: make option struct local

Removes specifics from options.h and options.c, and puts everything into
vd_lavc.c.
ad_lavc: make option struct local

Similar to previous commit.