Add helpers for debugging with valgrind

The environment variable USE_VALGRIND can be set to run tests with valgrind. If
VALGRIND_GDB is set, valgrind will start it's own gdbserver for remote
debugging with `target remote | vgdb`. USE_GDB can still be used, but it will
be ignored if USE_VALGRIND is set.
Stop queueing events when signals are rejected

The only exception is SIGINT, which will set `got_int` directly. This will be
necessary for the new implementation of `mch_call_shell`
Rewrite `mch_call_shell` on top of libuv

- Rename to `os_call_shell`
- Use another entry point for libuv default event loop
- Fix the `call_shell` reference in misc2.c
Remove the old `mch_call_shell` implementation