add M_OPT_FILE and complete file names in options

This adds the `M_OPT_FILE` option to mark options that want files, and makes the zsh completion script use it to complete values for those options.

It doesn't quite differentiate between single files and file lists though (that would need parsing of the option types).