Move functions from os/fs.c into path.c

Move unit tests from os/fs.moon to path.moon
Move and adapt `os_get_absolute_path` unit tests to `vim_FullName`

* Add two new unit tests to `vim_FullName`
* Make `os_get_absolute_path` static
Change prefix from `os_*` to `path_*`
Move exe functions back to os/fs.c
vim-patch:7.4.186

Problem:    Insert in Visual mode sometimes gives incorrect results.
            (Dominique Pelle)
Solution:   Remember the original insert start position. (Christian Brabandt,
            Dominique Pelle)

https://code.google.com/p/vim/source/detail?r=4d12112c5efae071aecbeed1a7196f18950457b3
Fix broken build due to unit test include order

 Commit 4348d1e6f74a87af55c6c01e7a0cb292e9dec114
 introduced a bug that breaks the unit tests unless
 they run in a certain order. Both path.moon
 and os/fs.moon tries to include the same Enum, which
 fails since ffi.cdef can only include definitions once.

 This solves the bug by using Lua variables instead of
 ffi.cdef Enums.
Remove from ex_cmds.c
Remove from misc1.c
Remove from ops.c
Remove `alloc_check`