full ffmetadata support

Fully support ffmetadata for specifying things that the script would
need. Instead of overriding @ metadata, they get included only if that
metadata isn't already declared.

(This is a change from the previous version of the script (in
old-script branch), where specifying -f would turn off declared
metadata entirely. I feel this is much better.)