[RFC] os_open/read/closedir()

Moves `unix_expandpath()` and `fname_case()` out of `os_unix.c`. Since they no longer require unix, I renamed them `path_expand()` and `path_fix_case()`.

`path_fix_case()` does not have any uses, so I haven't been able to test it, but I wanted it out of `os_unix.c` because we may want to enable using it for when mounting case-insensitive file systems.

This PR would benefit from upgrading libuv as it learns `uv_fs_readdir_next()` in `v0.11.29` (we use `28`) it changes the interface to `uv_fs_readdir()` and breaks the code as I have it written. In other words, either we upgrade now and hope they don't break anything again, update this code when we do upgrade, or not integrate this PR until `uv_fs_readdir()` has stabilized (which it may or may not already have).
In vanilla vim's `dos_expandpath()`, it uses `"*.*"` as the search pattern, but libuv just uses `"*`, so if we need to restore that behaviour, it'll have to go in the loop below. (https://github.com/joyent/libuv/blob/v0.11.28/src/win/fs.c#L807-L813)