[RFC] coverity/74718: RI: os_call_shell: handle null `cmd`

- remove invalid `FUNC_ATTR_NONNULL_ARG(1)`
- receive `(char *)` internally
- modify identifier names for consistency
- edit comments for concision and consistency
> positions previous to i (those containing the shell name and options) must be handled somewhere else

Well, not somewhere else, in fact. They are handled previously in this same function. The line:
```
  size_t i = tokenize(p_sh, rv);
```
already fills positions previous to i (containing shell name and options). I hadn't previously noticed that `rv` was an output parameter.

So, we can leave just the `if (cmd != NULL)` branch (improved to `if (cmd)`.