Move signal handling to libuv event loop

This removes all signal handling code from os_unix.c and into os/signal.c which
registers watchers for 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.