whitespace and argument shifting and things
it's not at all clear how to accept arguments ... can tagged args be out of order? Clearly untagged ones can't if there's more than one... hrm
let's do this in the command heirarchy somewhere

Then the commands can have a say in whether they're parsing correctly
Merge branch 'cmds' into parser-command-resolution