Split code for counting and parsing arguments
Extract `shell_skip_word` from `mch_call_shell`
Extract `shell_count_argc` from `mch_call_shell`
Make `extra_shell_arg` a `mch_call_shell` parameter
Extract `shell_build_argv` from `mch_call_shell`
Refactor/cleanup argument parsing functions
Refactor SHELL_* defines into enum typedef

The SHELL_* defines are the bitflags that can be passed to `mch_call_shell`.
The enum is defined in 'os/shell.h', where all shell-related functions will
eventually be defined.
Update `call_shell` signature to use `ShellOpts`
Rewrite `show_shell_mess` as a `ShellOpts` flag
Add doxygen comments to the functions in shell.c