m_property: don't parse empty string as 0

Nice strtol() usage error.
command: add helper function to split property paths

We've just checked whether a sub-path started with "name/", but that
changes behavior whether the property name has a trailing '/' or not.
Using a helper function to split of path components avoids this problem.
command: fix access to "metadata/list" property

The function tag_property() in command.c passed a key action with empty
path to m_property_read_list. This is normally not valid, because key
actions are supposed to access sub-paths. But it's kind of inconvenient
to check for this case in tag_property(). So make it valid by providing
a m_property_unkey() function, which turns a key access to "" into a
top-level action.
move mp_tags stuff its their own .c/.h files in the common/ directory.
rename add_metadata to the more genera/descriptive mp_tags_copy_items_from_av_dictionary
copy AVFrame metadata into vf_lavfi priv

store it as an mp_tags object and add VFCTRL_GET_METADATA to access it from elsewhere
add vf-metadata property

This is a read-only property that uses VFCTRL_GET_METADATA
to retrieve the the mp_tags from the vf_lavfi priv structure
add autocrop.lua to TOOLS to demonstrate vf-metadata usage