[WIP/TEMP] Concat fnames rework

This is to support #1097, so @splinterofchaos can tell me where I'm reasoning wrong, and travis can tell me which test is failing.
`vim_strnsave` has special semantics. It allocates an additional byte and fills the remaining buffer with `NUL`.
Would it not be more efficient to keep the calls to `xmalloc` and `STRCPY`?