constify + attribute vim_strnsave
path: concat_fnames(a,b,sep?) -> path_join(a,b)

Running `$ ag concat_fnames` reveals that the third argument is `true`,
except for one instance where vim_strcat() can be used instead.

Rename to path_join() for consistency and add Aktau's unit tests.
path: add_pathsep -> path_add_sep

 * Implement path_add_sep_impl for efficiency.
 * Change add_pathsep to path_add_sep for consistency.
path: path_buf_join -- a buffer-aware path_join().
path: Merge append_path -> path_append(_with_sep).

Check if the path to append is "." in path_append.

Modify vim_Fullname to save this information and update its tests.

WARNING: This changes the behaviour some vim features, like globpath, to
return "dir/" instead of "dir/.".
path: path_save and path_copy.