Refactor vim_tempname

- temp_count is uint32_t now instead of long because it supposed to be
  at most 999999999 (comment on line 5227) temporary files. The most
  probably it was a long for compatibility with systems where int is
  16-bit.
- Use "nvim" as prefix for temp folder name instead of "v"
- Remove unused parameter from vim_tempname
Add vim_gettempdir(), remove global vim_tempdir

vim_gettempdir() and vim_maketempdir() was extracted from
vim_tempname().
Extract `tempfile` module from fileio

Though this module is relatively small it has very clear boundaries.
The last argument for extracting `tempfile` was the errors which I got
when I was writing unittests for it: `cimport './src/nvim/fileio.h'`
does not work for some reason.
tempfile.c: add tests
tempfile.c: add to clint-files and fix warnings
tempfile.c: enable -Wconversion
tempfile.c: fix style issues and comments
tempfile.c: refactor vim_settempdir

- return result of setting and remove directory if the setting was not
  successful.
- don't do `STRCPY` in case of `vim_FullName` failure because
  `vim_FullName` already did it.
Create os/os_defs.h for os specific definitions