Rename { FILETYPE_MENU => FILE_MENU }
Rename show_{ filetypes => file }_menu
Extract filetype:find_existing_cmd

Finds first existing command which pattern matches given file.

This also fixes memory leak in ft_get_program(), which didn't free
assoc_records_t object properly.
Fix memory leak related to list of filetypes

Wrong comment lead to incomplete resource release for clients of
ft_get_all_programs().
Fix memory leak on parsing program list

Because of wrong use of split_and_get() adapted in recent commits.
Extract filetype:clone_all_matching_records()

Clones all records which pattern matches the file.
Simplify filetype:clone_assoc_records()

Reuse ft_assoc_record_add_all() in the body.
Add filetype:ft_get_all_viewers() function

Gets list of programs associated with specified file name.
Add single-argument form of :fileviewer command

It lists (in menu mode) currently registered patterns that match
specified file name.
Extract utils/str:skip_word()

Skips consecutive non-whitespace characters followed by any number of
whitespace.

Plus a bit of clean-up for similar functions.
Tidy up :file[x]type handlers
Add single-argument form of :file[x]type command

It lists (in menu mode) currently registered patterns that match
specified file name.
Merge branch 'filetype-lists'

Add single-argument form of :file[x]type and :fileviewer command that
lists (in menu mode) currently registered patterns that match specified
file name.

Quite useful to debug configuration and just look up what applications
and commands are used.