[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
Yes, yes. I understand an interactive shell should be fired when cmd is NULL. 

> But until this PR, the NULL case is not actually handled.

That's what I'm not sure about.
Note that `i` starts at a position **after** those needed for the shell name and some extra params.
I mean, you're adding passed cmd, if any, starting at position i. But positions previous to i (those containing the shell name and options) must be handled somewhere else (unless we're broken the code at some point).
So, in the case of no cmd, nothing should be done here.
I have to look at this more carefully before giving a better answer, but I feel there's something strange here.