Fix filetype tests compilation
Allow setting multiple file viewers

Thanks to filterfalse.
Extract filetype.c:parse_command_list()

Parses comma separated list of commands into array of associations.
Don't reparse list of programs for each pattern
Use split_and_get() in filetype:set_programs()
Allow list of viewers
Extract filetype:find_existing_cmd_record()

Finds record that corresponds to an external command that is
available.
Use split_and_get() in filetype:set_fileviewer()
Rename filetype:{set_fileviewer=>set_fileviewers}

Also add function comment.
Add/fix comments for assoc_programs/assoc_viewers
Rename public filetype functions

To start with "ft_" prefix.
Simplify ft_get_program() prototype

To simplify its use, no need to over-complicate it.
Simplify running:run_file() a bit

Extract a couple of functions out of it.
Don't allow providing descriptions for viewers

It doesn't really make sense as no one will ever see them.
"showed" => "displayed" in documentation
Document multiple file viewers
Merge branch 'allow-multiple-viewers'

Allow having multiple file viewers with same rules for choosing them at
run-time as for file associations.

Thanks to filterfalse.