(Vread_file_name_function, Vread_file_name_predicate):
New variables.
(syms_of_fileio): DEFVAR_LISP them.
(read_file_name_cleanup): New unwind function.
(Fread_file_name_internal): Only return completions satifying
Vread_file_name_predicate. Temporarily unwind protect and rebind
default-directory while checking completions against the predicate.
(Fread_file_name): Added PREDICATE argument. Specbind it to
Vread_file_name_predicate during completion.
Call Vread_file_name_function to read the file name if non-nil.