Replace FOR_ALL_WINDOWS with FOR_ALL_WINDOWS_IN_TAB(curtab)
Remove W_NEXT use `->w_next`
Merge pull request #1208 from war1025/dev/remove_for_all_windows

Remove FOR_ALL_WINDOWS and replace with FOR_ALL_WINDOWS_IN_TAB(curtab)
memory: implement xmemrchr()
call_shell: Add callback param to os_call_shell().

Change `read_cb()` to execute the user callback and to ensure the input
is line-wise.

Factor `do_read_cb()` out of `read_cb()` and make it the default
callback for `os_call_shell()` so that `kShellOptRead` works as
expected.

Use NULLs for the callbacks at each call site so they can be update, one
by one.
call_shell: avoid copying in do_read_cb.
call_shell: Use a callback with get_cmd_output.
doxygen: do_shell()
call_shell: Add callback to do_shell()
call_shell: Use a callback for "diff" output.

Make read_diff() reentrant by locallizing its variables and storing the
ones that persist in a structure. Use it as a callback.
call_shell: Add input/input_len parameters.

Change write_selection() to save_selection().