Command range parsing
Range parsing fixes
Range parsing + handling for commands

Also pulled out command parsing
ui_print() - scrolls up the screen if necessary
:p command
:p waits after printing
Allow newline to end :p without a message
join() takes char **, not const char **

This resolves problems with nested pointer type passing.
More generic command parsing - argv[0] is all ascii
Maintain argv[argc] = 0 when inserting argv
:g skeleton
:g debugging for command parsing
Simplified join() + removed trailing separator
Handle multiple spaces in command arguments
More commands in TODO
Partial split of commands - argv and arg1
Dependency update
Command parsing for argv vs. arg1

i.e. depends on command.single_arg
Pulled out range-command-parsing to parse_cmd.c
:wq/:x passes no arguments to :q