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: 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.