Simplify code in vifm:dump_filenames() a bit

Second branch adds extra slash, so it's OK.
Remove unused field dir_entry_t::date
Add dir_entry_t::origin field

Location where this file comes from, NULL if from curr_dir.
Extract filelist:init_dir_entry()

Initializes dir_entry_t with name and all other fields with default
values.
Fix UI glitch right after setting 'classify'

Quite rare one.
Better comment for dir_entry_t:was_selected

It's not temporary as its life time is period of Visual mode activity,
e.g. it should survive view reload while in Visual mode.
Style related changes for filelist.c
Fix considering 'classify' option for ".." entry

In directories without files.  Maximum file name length didn't take
'classify' option into account.
Extract filelist:update_max_filename_len()

Updates maximum filename length in the view using the entry.
Make filelist:rescue_from_empty_filelist() clearer

In the sense of responsibilities of the function.
Change the way max filename length is computed

Do this in one place rather than scattering in several places.
Fix lsview layout calculation for non-ascii names

Used too much space because of use of strlen() which calculates
bytes of UTF-8.
Fix 'lsview' entry highlight minor glitch

Related to symbolic links to directories.

Turns out symbolic links weren't analyzed on whether they point to
directories during maximum file name width calculation.
Better terminology for FileView:max_filename_len

It's width actually, now with a proper comment.
Bind origins to view's current dir path by default
Initial try to make use of file origins
Introduce marking and teach yank how to use it
Use marking for file deletion
Extract fileops:append_fname()

Appends file name to undo message buffer.  buf should be at least
COMMAND_GROUP_INFO_LEN characters length.
Rename buf => undo_msg in commands:execute_command