Fix prepare watcher teardown in the event loop
Rename mch_* functions to os_* in os module.
Address clint warnings and other style issues.

* Add const.
* Fix conditions (move && from end to start of line).
* Use int32_t instead of long.
* Use //-style comments.
Move signal handling to libuv event loop

This removes all signal handling code from os_unix.c to os/signal.c, which
registers watchers on libuv default loop.

Now signal handling will only happen when Neovim transfers control to libuv, and
SIG{HUP,TERM,QUIT} are the only deadly signals intercepted. A SIGINT will also
exit the event loop in cooked mode.