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
vim-patch:7.4.171

Problem:    Redo does not set v:count and v:count1.
Solution:   Use a separate buffer for redo, so that we can set the counts when
            performing redo.

https://code.google.com/p/vim/source/detail?r=beb037a6c2708f539d50840637f70eed0811d93c
Moved mch_get_pid and renamed it to os_get_pid
Moved mch_get_host_name and renamed it to os_get_hostanme
vim-patch:7.4.173

Problem:    When using scrollbind the cursor can end up below the last line.
            (mvxxc)
Solution:   Reset w_botfill when scrolling up. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=233ad7b960d0fbeb224b383918113b25c74ebe35
Use early return for rejecting_deadly in signal_cb
vim-patch:7.4.178

Problem:    The J command does not update '[ and '] marks. (William Gardner)
Solution:   Set the marks. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=647e6bb15aa3f864eaf447fe77e3e3ae7e37b134
Implement `xstrdup` and `xstrndup`

Utility functions for copying strings to newly-allocated chunks. They either
succeed or exit the program.
Replace `strdup` calls by `xstrdup`
Implement os_microdelay and os_delay on top of it
Remove `RealWaitForChar` and `mch_new_shellsize`

The last occurrence of `RealWaitForChar` was replaced by the `os_microdelay`
function. `mch_new_shellsize` had an empty body, so there seems to be no reason
for keeping it around
Add comments and fix `os_microdelay` call
Remove unneeded variable `in_os_delay`

This variable only existed for the old SIGQUIT handler. Now it's no longer
necessary, especially when Neovim stops being a terminal program.
Move functions from os/fs.c into path.c
Add headers
Add success constant
Make `os_get_absolute_path` static