Make gendeclarations.lua more friendly to incremental builds

Modify gendeclarations.lua to check if the generated non-static declaration
header changed before rewriting it with a new version. This is to prevent
unnecessary rebuilds of modules that depend on modules that had private changes.
Merge branch 'make-gendeclarations-friendly-to-incremental-builds'
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.