Rewrite `mch_call_shell` on top of libuv

- Rename to `os_call_shell`
- Rewrite the function using another entry point to libuv event loop