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.
Simplify tricky preprocessor tests in ff_check_visited()
Remove simpler cases of OOM error handling (after *alloc calls)

By simpler cases I mean cases where the OOM error is not expected to be handled
by the caller of the function that calls `alloc`, `lalloc`, `xrealloc`,
`xmalloc`, `alloc_clear`, and `lalloc_clear`.

These are the functions that:

 - Do not return an allocated buffer
 - Have OOM as the only error condition

I took note of the functions that expect the caller to handle the OOM error and
will go through them to check all the callers that may be handling OOM error in
future commits.

I'm ignoring eval.c and ex_*.c in this series of commits as these files are
being heavily refactored by @ZyX-I.