FileID: implement `FileID` struct

`FileID` should encapsulate `st_dev` and `st_ino`. It is a new abstraction
used to check if two files are the same. `FileID`s will be embeded inside
other struts like `buf_t` or `ff_visited_T`, where a full `FileInfo` would be
to big.
FileID: remove `INVALID_DEVICE_ID` macro
FileID: refactor buffer.c to use `FileID`
FileID: refactor ex_cmds2.c to use `FileID`
FileID: refactor file_search.c to use `FileID`
FileID: refactor if_cscope.c to use `FileID`
FileID: refactor path.c to use `FileID`
FileID: refactor os_unix.c to use `FileID`
FileID: make `os_stat()` static
FileID: remove last use of `st_ino` in memline.c

* FileID can’t be used in memline.c, because the block0 is defined to
use only a 32bit ino.
* implemented `os_file_info_get_inode`
* deprecated `os_file_info_get_inode
FileID: remove `CHECK_INODE` macro
Merge #775 'Implement `FileID` struct'
os: implement VimL libcall with {mch,os}_libcall

The old mch_libcall was removed from neovim. This is a partial
reimplementation on top of libuv. It doesn't catch exceptions (windows) nor
signals (unix) though, so it's quite a bit more prone to crashing if the
loadable library throws an exception or crashes. Still, it should be fine
for well-behaved libraries. Requested by @Shougo.
os: remove legacy mch_libcall

Remove as much leftover cruft as possible. Tried to see which globals are
now not used anymore.
libcall: remove libcall ifdefs

Remove all the legacy code that related to mch_libcall in some way.
os_libcall is implemented on top of libuv now.
Merge #802 'implement VimL libcall with os_libcall'