input: ignore modifiers when releasing keys

This prevents keys from getting stuck if the modifier is released before
the base key.
input: check for abort cmd in multi-commands

MP_CMD_COMMAND_LIST commands (used to implement key bindings with
multiple commands) were not checked for abort commands. Implement it.

Remove the remarks about multi-commands being special from the manpage.
Seek coalescing is handled differently now, and the issue with abort
commands is fixed with this commit.
options: handle escape sequences in e.g. --playing-msg differently

M_OPT_PARSE_ESCAPES was pretty stupid, and broke the (useful) assumption
that string variables contain exactly the same value as set by the
option. Simplify it, and move escape handling to the place where it's
used.

Escape handling itself is not terribly useful, but still allows useful
things like multiline custom OSD with "\n".
lua: fix behavior if no script command handler is registered
m_option: explicitly allow m_option.name==NULL

Doesn't require other code to care about this, which will allow us to
simplify the property code.

Only "wildcard" options like "vf" and string lists used this, and
m_option_list_findb() (which is excused).
manpage: fix yadif example in one case
command: don't use option name in properties

Some code accessed m_option.name to get the property name. (Maybe only
show_property_osd() had a significant use of it.) Remove that, and
remove setting names and dummy names as well.

The old code usually assumed that the name was set, and
show_property_osd() used it to get the proper name of deprecated
aliases.

The "vf" property was listed as "vf*". Not sure why that was done, but
it works without anyway.
manpage: fix a metadata property name
ta: clarify a corner case
ta: fix comment

If this function could return the input value (i.e. the == case was
correct), then macros like MP_GROW_ARRAY would have been incorrect. The
implementation was correct though, so there's no bug.
old build: add a missing config.h define

The configure check was added to waf only.
command: remove special casing for strings in input commands

Until now, strings were the only allowed dynamically allocated argument
type in input commands. Extend it so that it works for any type. (The
string expansion in command.c is of course still string specific.)
command: provide per-file-options for loadfile command

Signed-off-by: wm4 <wm4@nowhere>

Closes #575. Minor changes over original pull request.
example.conf: subtitle encoding

Signed-off-by: wm4 <wm4@nowhere>

Closes #580.
example.conf: change subtitle codepage example to use UTF-8 fallback

This should be pretty safe compared to forcing the codepage.
command: use DVD volume ID for media-title property

Signed-off-by: wm4 <wm4@nowhere>

Closes #582.
dvd: check for empty DVD volume ID

The only DVD sample I have just returns an empty string for this. Let
command.c use the filename if the ID is empty.
cache: cache DVD volume ID

Since this might be queried every frame or so, it's important not to
stall the cache by doing a synchronous stream_control().
dvd: treat missing volume ID as "unsupported", not error

This is probably better and more consistent with the rest of the code,
although it doesn't change any currently existing behavior in this case.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	input/cmd_list.c
	player/command.c
	stream/stream_dvd.c
	stream/stream_dvdnav.c